Text   |  XML   |  ReML   |   Visible Warnings:

Unreachable Control Flow  at uat_gui.c:512

No properties have been set. | edit properties
Jump to warning location ↓ warning details...
Show Events | Options

uat_edit_dialog

(/home/sate/Testcases/c/cve/wireshark-1.2.0/gtk/uat_gui.c)expand/collapse
Show more  
 401  static void uat_edit_dialog(uat_t* uat, gint row) {
 402          GtkWidget *win, *main_tb, *main_vb, *bbox, *bt_cancel, *bt_ok;
 403          struct _uat_dlg_data* dd = g_malloc(sizeof(struct _uat_dlg_data));
 404          uat_field_t* f = uat->fields;
 405          guint colnum;
 406          GtkTooltips *tooltips;
 407   
 408          tooltips = gtk_tooltips_new();
 409           
 410          dd->entries = g_ptr_array_new();
 411          dd->win = dlg_conf_window_new(ep_strdup_printf("%s: %s", uat->name, (row == -1 ? "New" : "Edit")));
 412          dd->uat = uat;
 413          dd->rec = row < 0 ? g_malloc0(uat->record_size) : UAT_INDEX_PTR(uat,row);
 414          dd->is_new = row < 0 ? TRUE : FALSE;
 415          dd->row = row;
 416          dd->tobe_freed = g_ptr_array_new();
 417   
 418          win = dd->win;
 419   
 420          gtk_window_set_resizable(GTK_WINDOW(win),FALSE);
 421          gtk_window_resize(GTK_WINDOW(win),400, 30*(uat->ncols+2));
 422   
 423          main_vb = gtk_vbox_new(FALSE,5);
 424          gtk_container_add(GTK_CONTAINER(win), main_vb);
 425          gtk_container_set_border_width(GTK_CONTAINER(main_vb), 6);
 426   
 427          main_tb = gtk_table_new(uat->ncols+1, 2, FALSE);
 428          gtk_box_pack_start(GTK_BOX(main_vb), main_tb, FALSE, FALSE, 0);
 429          gtk_table_set_row_spacings(GTK_TABLE(main_tb), 5);
 430          gtk_table_set_col_spacings(GTK_TABLE(main_tb), 10);
 431   
 432          bbox = dlg_button_row_new(GTK_STOCK_CANCEL,GTK_STOCK_OK, NULL);
 433          gtk_box_pack_end(GTK_BOX(main_vb), bbox, FALSE, FALSE, 0);
 434   
 435          bt_ok = g_object_get_data(G_OBJECT(bbox), GTK_STOCK_OK);
 436          g_signal_connect(bt_ok, "clicked", G_CALLBACK(uat_dlg_cb), dd);
 437   
 438          bt_cancel = g_object_get_data(G_OBJECT(bbox), GTK_STOCK_CANCEL);
 439          g_signal_connect(bt_cancel, "clicked", G_CALLBACK(uat_cancel_dlg_cb), dd);
 440          window_set_cancel_button(win, bt_cancel, NULL);
 441   
 442          for ( colnum = 0; colnum < uat->ncols; colnum++ ) {
 443                  GtkWidget *entry, *label, *event_box;
 444                  char* text = fld_tostr(dd->rec,&(f[colnum]));
 445   
 446                  event_box = gtk_event_box_new();
 447   
 448                  label = gtk_label_new(ep_strdup_printf("%s:", f[colnum].title));
 449                  if (f[colnum].desc != NULL)
 450                          gtk_tooltips_set_tip(tooltips, event_box, f[colnum].desc, NULL);
 451   
 452                  gtk_misc_set_alignment(GTK_MISC(label), 1.0f, 0.5f);
 453                  gtk_table_attach_defaults(GTK_TABLE(main_tb), event_box, 0, 1, colnum+1, colnum + 2);
 454                  gtk_container_add(GTK_CONTAINER(event_box), label);
 455   
 456                  switch(f[colnum].mode) {
 457                          case PT_TXTMOD_STRING:
 458                          case PT_TXTMOD_HEXBYTES: {
 459                                  entry = gtk_entry_new();
 460                                  g_ptr_array_add(dd->entries,entry);
 461                                  gtk_table_attach_defaults(GTK_TABLE(main_tb), entry, 1, 2, colnum+1, colnum + 2);
 462                                  if (! dd->is_new) {
 463                                          gtk_entry_set_text(GTK_ENTRY(entry),text);
 464                                  }
 465                                  dlg_set_activate(entry, bt_ok);
 466                                  break;
 467                          }
 468                          case PT_TXTMOD_ENUM: {
 469                                  GtkWidget *menu, *option_menu;
 470                                  int menu_index, index;
 471                                  const value_string* enum_vals = f[colnum].fld_data;
 472                                  void* valptr = g_malloc0(sizeof(void*));
 473   
 474                                  menu = gtk_menu_new();
 475                                  menu_index = -1;
 476                                  for (index = 0; enum_vals[index].strptr != NULL; index++) {
 477                                          struct _fld_menu_item_data_t* md = g_malloc(sizeof(struct _fld_menu_item_data_t));
 478                                          const char* str = enum_vals[index].strptr;
 479                                          GtkWidget* menu_item = gtk_menu_item_new_with_label(str);
 480                                           
 481                                          md->text = str;
 482                                          md->valptr = valptr;
 483                                           
 484                                          gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);
 485                                           
 486                                          if ( g_str_equal(str, text) ) {
 487                                                  menu_index = index;
 488                                                  *((char const**)valptr) = str;
 489                                          }
 490   
 491                                          g_signal_connect(menu_item, "activate", G_CALLBACK(fld_menu_item_cb), md);
 492                                          g_signal_connect(menu_item, "destroy", G_CALLBACK(fld_menu_item_destroy_cb), md);
 493                                  }
 494   
 495                                  g_ptr_array_add(dd->entries,valptr);
 496                                  g_ptr_array_add(dd->tobe_freed,valptr);
 497   
 498                                  /* Create the option menu from the menu */
 499                                  option_menu = gtk_option_menu_new();
 500                                  gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu);
 501   
 502                                  /* Set its current value to the variable's current value */
 503                                  if (menu_index != -1)
 504                                          gtk_option_menu_set_history(GTK_OPTION_MENU(option_menu), menu_index);
 505   
 506                                  gtk_table_attach_defaults(GTK_TABLE(main_tb), option_menu, 1, 2, colnum+1, colnum + 2);
 507   
 508                                  break;
 509                          }
 510                          default:
 511                                  g_assert_not_reached();
 512                                  return;
 513                  }
 514          }
 515           
 516          gtk_widget_grab_default(bt_ok);
 517          gtk_widget_show_all(win);
 518  }
Show more  




Change Warning 4285.30414 : Unreachable Control Flow

Priority:
State:
Finding:
Owner:
Note: