diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-03-23 11:59:35 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-03-23 11:59:35 +0000 |
commit | 2eb49ab16579794fdc5df74dbb45d126a6f4d6f2 (patch) | |
tree | a655b1ddd90bcf602db456693d17adaa1a0e7911 | |
parent | 88843eb611f92edb06cff4bb5a1bf87f8465b243 (diff) | |
download | gnunet-gtk-2eb49ab16579794fdc5df74dbb45d126a6f4d6f2.tar.gz gnunet-gtk-2eb49ab16579794fdc5df74dbb45d126a6f4d6f2.zip |
-fix error handling for corner cases
-rw-r--r-- | src/fs/gnunet-fs-gtk_event-handler.c | 12 | ||||
-rw-r--r-- | src/fs/gnunet-fs-gtk_main-window-namespace-dropdown.c | 19 | ||||
-rw-r--r-- | src/fs/gnunet-fs-gtk_main-window-search.c | 3 | ||||
-rw-r--r-- | src/fs/gnunet-fs-gtk_namespace_manager.c | 12 |
4 files changed, 28 insertions, 18 deletions
diff --git a/src/fs/gnunet-fs-gtk_event-handler.c b/src/fs/gnunet-fs-gtk_event-handler.c index de06d2a7..fb1fdb97 100644 --- a/src/fs/gnunet-fs-gtk_event-handler.c +++ b/src/fs/gnunet-fs-gtk_event-handler.c | |||
@@ -1468,14 +1468,18 @@ update_search_result (struct SearchResult *sr, | |||
1468 | "Updating search result SR=%p with %d, %u, %u\n", | 1468 | "Updating search result SR=%p with %d, %u, %u\n", |
1469 | sr, availability_rank, | 1469 | sr, availability_rank, |
1470 | availability_certainty, applicability_rank); | 1470 | availability_certainty, applicability_rank); |
1471 | desc = GNUNET_FS_GTK_get_description_from_metadata (meta, &desc_is_a_dup); | ||
1472 | mime = get_mimetype_from_metadata (meta); | ||
1473 | pixbuf = GNUNET_FS_GTK_get_thumbnail_from_meta_data (meta); | ||
1474 | tp = gtk_tree_row_reference_get_path (sr->rr); | 1471 | tp = gtk_tree_row_reference_get_path (sr->rr); |
1475 | tm = gtk_tree_row_reference_get_model (sr->rr); | 1472 | tm = gtk_tree_row_reference_get_model (sr->rr); |
1476 | ts = GTK_TREE_STORE (tm); | 1473 | ts = GTK_TREE_STORE (tm); |
1477 | gtk_tree_model_get_iter (tm, &iter, tp); | 1474 | if (! gtk_tree_model_get_iter (tm, &iter, tp)) |
1475 | { | ||
1476 | GNUNET_break (0); | ||
1477 | return; | ||
1478 | } | ||
1478 | gtk_tree_path_free (tp); | 1479 | gtk_tree_path_free (tp); |
1480 | desc = GNUNET_FS_GTK_get_description_from_metadata (meta, &desc_is_a_dup); | ||
1481 | mime = get_mimetype_from_metadata (meta); | ||
1482 | pixbuf = GNUNET_FS_GTK_get_thumbnail_from_meta_data (meta); | ||
1479 | gtk_tree_model_get (tm, &iter, 0, &ometa, -1); | 1483 | gtk_tree_model_get (tm, &iter, 0, &ometa, -1); |
1480 | if (NULL != ometa) | 1484 | if (NULL != ometa) |
1481 | GNUNET_CONTAINER_meta_data_destroy (ometa); | 1485 | GNUNET_CONTAINER_meta_data_destroy (ometa); |
diff --git a/src/fs/gnunet-fs-gtk_main-window-namespace-dropdown.c b/src/fs/gnunet-fs-gtk_main-window-namespace-dropdown.c index 70a63192..b9b7daaa 100644 --- a/src/fs/gnunet-fs-gtk_main-window-namespace-dropdown.c +++ b/src/fs/gnunet-fs-gtk_main-window-namespace-dropdown.c | |||
@@ -370,7 +370,7 @@ GNUNET_GTK_main_window_refresh_ns_list (struct GNUNET_GTK_MainWindowContext *mai | |||
370 | memcpy (selected_ns_id, key, sizeof (GNUNET_HashCode)); | 370 | memcpy (selected_ns_id, key, sizeof (GNUNET_HashCode)); |
371 | } | 371 | } |
372 | 372 | ||
373 | if (TRUE == gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( | 373 | if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( |
374 | main_ctx->search_ns_treestore), &iter)) | 374 | main_ctx->search_ns_treestore), &iter)) |
375 | { | 375 | { |
376 | while (TRUE) | 376 | while (TRUE) |
@@ -398,7 +398,7 @@ GNUNET_GTK_main_window_refresh_ns_list (struct GNUNET_GTK_MainWindowContext *mai | |||
398 | add_namespace_to_ts, main_ctx->search_ns_treestore); | 398 | add_namespace_to_ts, main_ctx->search_ns_treestore); |
399 | main_ctx->ns_callback_registered = GNUNET_YES; | 399 | main_ctx->ns_callback_registered = GNUNET_YES; |
400 | 400 | ||
401 | if (TRUE == gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( | 401 | if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( |
402 | main_ctx->search_ns_treestore), &iter)) | 402 | main_ctx->search_ns_treestore), &iter)) |
403 | { | 403 | { |
404 | while (TRUE) | 404 | while (TRUE) |
@@ -418,19 +418,22 @@ GNUNET_GTK_main_window_refresh_ns_list (struct GNUNET_GTK_MainWindowContext *mai | |||
418 | g_free (value); | 418 | g_free (value); |
419 | } | 419 | } |
420 | } | 420 | } |
421 | if (!found) | 421 | if ( (!found) && |
422 | gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( | ||
423 | main_ctx->search_ns_treestore), &iter)) | ||
422 | { | 424 | { |
423 | gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( | ||
424 | main_ctx->search_ns_treestore), &iter); | ||
425 | gtk_tree_model_get (GTK_TREE_MODEL (main_ctx->search_ns_treestore), &iter, | 425 | gtk_tree_model_get (GTK_TREE_MODEL (main_ctx->search_ns_treestore), &iter, |
426 | 0, &value, 1, &key, -1); | 426 | 0, &value, 1, &key, -1); |
427 | found = TRUE; | 427 | found = TRUE; |
428 | } | 428 | } |
429 | gtk_tree_selection_select_iter (gtk_tree_view_get_selection | 429 | if (found) |
430 | (main_ctx->ns_selector_treeview), &iter); | 430 | gtk_tree_selection_select_iter (gtk_tree_view_get_selection |
431 | (main_ctx->ns_selector_treeview), &iter); | ||
431 | if (value != NULL) | 432 | if (value != NULL) |
433 | { | ||
432 | gtk_label_set_text (main_ctx->search_ns_label, value); | 434 | gtk_label_set_text (main_ctx->search_ns_label, value); |
433 | g_free(value); | 435 | g_free(value); |
436 | } | ||
434 | GNUNET_free_non_null (selected_ns_id); | 437 | GNUNET_free_non_null (selected_ns_id); |
435 | } | 438 | } |
436 | 439 | ||
diff --git a/src/fs/gnunet-fs-gtk_main-window-search.c b/src/fs/gnunet-fs-gtk_main-window-search.c index ff43ff62..cf4d969c 100644 --- a/src/fs/gnunet-fs-gtk_main-window-search.c +++ b/src/fs/gnunet-fs-gtk_main-window-search.c | |||
@@ -63,7 +63,8 @@ start_search (struct GNUNET_GTK_MainWindowContext *main_ctx) | |||
63 | if ( (NULL != mime_model) && | 63 | if ( (NULL != mime_model) && |
64 | gtk_combo_box_get_active_iter (mime_combo, &iter)) | 64 | gtk_combo_box_get_active_iter (mime_combo, &iter)) |
65 | gtk_tree_model_get (mime_model, &iter, 0, &mime_keyword, -1); | 65 | gtk_tree_model_get (mime_model, &iter, 0, &mime_keyword, -1); |
66 | if (0 == strcmp (mime_keyword, " ")) | 66 | if ( (NULL != mime_keyword) && |
67 | (0 == strcmp (mime_keyword, " ")) ) | ||
67 | { | 68 | { |
68 | g_free (mime_keyword); | 69 | g_free (mime_keyword); |
69 | mime_keyword = NULL; | 70 | mime_keyword = NULL; |
diff --git a/src/fs/gnunet-fs-gtk_namespace_manager.c b/src/fs/gnunet-fs-gtk_namespace_manager.c index d40fb629..8330949b 100644 --- a/src/fs/gnunet-fs-gtk_namespace_manager.c +++ b/src/fs/gnunet-fs-gtk_namespace_manager.c | |||
@@ -87,7 +87,7 @@ sort_order_list (struct GNUNET_GTK_NamespaceManagerContext *ctx, | |||
87 | 87 | ||
88 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( | 88 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( |
89 | ctx->ns_order_store), NULL); | 89 | ctx->ns_order_store), NULL); |
90 | if (TRUE != gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( | 90 | if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( |
91 | ctx->ns_order_store), &iter)) | 91 | ctx->ns_order_store), &iter)) |
92 | return; | 92 | return; |
93 | 93 | ||
@@ -141,6 +141,8 @@ sort_order_list (struct GNUNET_GTK_NamespaceManagerContext *ctx, | |||
141 | cmp_result = strcmp (row_strings[i], row_strings[i + 1]); | 141 | cmp_result = strcmp (row_strings[i], row_strings[i + 1]); |
142 | break; | 142 | break; |
143 | default: | 143 | default: |
144 | GNUNET_break (0); | ||
145 | cmp_result = 0; | ||
144 | break; | 146 | break; |
145 | } | 147 | } |
146 | 148 | ||
@@ -316,7 +318,7 @@ GNUNET_GTK_namespace_manager_namespace_order_apply_clicked_cb ( | |||
316 | 318 | ||
317 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( | 319 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( |
318 | ctx->ns_order_store), NULL); | 320 | ctx->ns_order_store), NULL); |
319 | if (TRUE != gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( | 321 | if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( |
320 | ctx->ns_order_store), &iter)) | 322 | ctx->ns_order_store), &iter)) |
321 | return; | 323 | return; |
322 | 324 | ||
@@ -388,7 +390,7 @@ GNUNET_GTK_namespace_manager_namespace_details_apply_button_clicked_cb ( | |||
388 | 390 | ||
389 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( | 391 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( |
390 | ctx->ns_details_store), NULL); | 392 | ctx->ns_details_store), NULL); |
391 | if ((row_count > 0) && (TRUE != gtk_tree_model_get_iter_first ( | 393 | if ((row_count > 0) && (! gtk_tree_model_get_iter_first ( |
392 | GTK_TREE_MODEL (ctx->ns_details_store), &iter))) | 394 | GTK_TREE_MODEL (ctx->ns_details_store), &iter))) |
393 | { | 395 | { |
394 | /* This should not happen */ | 396 | /* This should not happen */ |
@@ -657,7 +659,7 @@ apply_known_ns_changes (struct GNUNET_GTK_NamespaceManagerContext *ctx) | |||
657 | 659 | ||
658 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( | 660 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( |
659 | ctx->known_ns_store), NULL); | 661 | ctx->known_ns_store), NULL); |
660 | if (TRUE != gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( | 662 | if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( |
661 | ctx->known_ns_store), &iter)) | 663 | ctx->known_ns_store), &iter)) |
662 | return; | 664 | return; |
663 | 665 | ||
@@ -690,7 +692,7 @@ free_lists_contents (struct GNUNET_GTK_NamespaceManagerContext *ctx) | |||
690 | 692 | ||
691 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( | 693 | row_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL ( |
692 | ctx->known_ns_store), NULL); | 694 | ctx->known_ns_store), NULL); |
693 | if (TRUE != gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( | 695 | if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL ( |
694 | ctx->known_ns_store), &iter)) | 696 | ctx->known_ns_store), &iter)) |
695 | return; | 697 | return; |
696 | 698 | ||