diff options
author | Michael Mann <mmann78@netscape.net> | 2015-01-09 19:50:09 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-01-12 14:25:12 +0000 |
commit | 7967ef9510f81e40c75c2907b632b7b672d5fb49 (patch) | |
tree | 45b376aa004be1ec521b23904d8f624198a62da4 /ui/gtk/uat_gui.c | |
parent | 554a3972cd085a17d7f7a9ed4d235234994907a3 (diff) |
Remove emem APIs from UAT functionality.
Change-Id: I009c09f25d170e5c9aaaef713eaacb3252817856
Reviewed-on: https://code.wireshark.org/review/6460
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Evan Huus <eapache@gmail.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/gtk/uat_gui.c')
-rw-r--r-- | ui/gtk/uat_gui.c | 91 |
1 files changed, 57 insertions, 34 deletions
diff --git a/ui/gtk/uat_gui.c b/ui/gtk/uat_gui.c index 497b0e041a..3321420bf1 100644 --- a/ui/gtk/uat_gui.c +++ b/ui/gtk/uat_gui.c @@ -181,7 +181,7 @@ static char *fld_tostr(void *rec, uat_field_t *f) { case PT_TXTMOD_ENUM: case PT_TXTMOD_FILENAME: case PT_TXTMOD_DIRECTORYNAME: - out = ep_strndup(ptr, len); + out = g_strndup(ptr, len); break; case PT_TXTMOD_HEXBYTES: { GString *s = g_string_sized_new( len*2 + 1 ); @@ -189,7 +189,7 @@ static char *fld_tostr(void *rec, uat_field_t *f) { for (i=0; i<len;i++) g_string_append_printf(s, "%.2X", ((const guint8*)ptr)[i]); - out = ep_strdup(s->str); + out = g_strdup(s->str); g_string_free(s, TRUE); break; @@ -200,27 +200,27 @@ static char *fld_tostr(void *rec, uat_field_t *f) { break; } + g_free((char*)ptr); return out; } static void append_row(uat_t *uat, guint idx) { - GPtrArray *a = g_ptr_array_new(); void *rec = UAT_INDEX_PTR(uat, idx); uat_field_t *f = uat->fields; guint colnum; GtkTreeIter iter; + gchar* tmp_str; if (! uat->rep) return; gtk_list_store_insert_before(uat->rep->list_store, &iter, NULL); for ( colnum = 0; colnum < uat->ncols; colnum++ ) { - g_ptr_array_add(a, fld_tostr(rec, &(f[colnum]))); - gtk_list_store_set(uat->rep->list_store, &iter, colnum, fld_tostr(rec, &(f[colnum])), -1); + tmp_str = fld_tostr(rec, &(f[colnum])); + gtk_list_store_set(uat->rep->list_store, &iter, colnum, tmp_str, -1); + g_free(tmp_str); } - - g_ptr_array_free(a, TRUE); } static void reset_row(uat_t *uat, guint idx) { @@ -229,6 +229,7 @@ static void reset_row(uat_t *uat, guint idx) { guint colnum; GtkTreePath *path; GtkTreeIter iter; + gchar* tmp_str; if (! uat->rep) return; @@ -238,22 +239,24 @@ static void reset_row(uat_t *uat, guint idx) { } for ( colnum = 0; colnum < uat->ncols; colnum++ ) { - gtk_list_store_set(uat->rep->list_store, &iter, colnum, fld_tostr(rec, &(f[colnum])), -1); + tmp_str = fld_tostr(rec, &(f[colnum])); + gtk_list_store_set(uat->rep->list_store, &iter, colnum, tmp_str, -1); + g_free(tmp_str); } } -static guint8 *unhexbytes(const char *si, guint len, guint *len_p, const char** err) { +static guint8 *unhexbytes(const char *si, guint len, guint *len_p, char** err) { guint8 *buf; guint8 *p; const guint8 *s = (const guint8 *)si; guint i; if (len % 2) { - *err = ep_strdup_printf("Uneven number of chars hex string %u \n'%s'", len, si); + *err = g_strdup_printf("Uneven number of chars hex string %u \n'%s'", len, si); return NULL; } - buf = (guint8 *)ep_alloc(len/2+1); + buf = (guint8 *)g_malloc(len/2+1); p = buf; for (i = 0; i<len ; i += 2) { @@ -297,7 +300,7 @@ static guint8 *unhexbytes(const char *si, guint len, guint *len_p, const char** return buf; on_error: - *err = "Error parsing hex string"; + *err = g_strdup("Error parsing hex string"); return NULL; } @@ -306,7 +309,7 @@ static gboolean uat_dlg_cb(GtkWidget *win _U_, gpointer user_data) { struct _uat_dlg_data *dd = (struct _uat_dlg_data *)user_data; guint ncols = dd->uat->ncols; uat_field_t *f = dd->uat->fields; - const char *err = NULL; + char *err = NULL, *tmp_err = NULL; guint colnum; for ( colnum = 0; colnum < ncols; colnum++ ) { @@ -334,10 +337,13 @@ static gboolean uat_dlg_cb(GtkWidget *win _U_, gpointer user_data) { case PT_TXTMOD_HEXBYTES: { text = gtk_entry_get_text(GTK_ENTRY(e)); - text = (const char *) unhexbytes(text, (guint) strlen(text), &len, &err); + text_free = unhexbytes(text, (guint) strlen(text), &len, &err); + text = (const char *)text_free; if (err) { - err = ep_strdup_printf("error in field '%s': %s", f[colnum].title, err); + tmp_err = err; + err = g_strdup_printf("error in field '%s': %s", f[colnum].title, tmp_err); + g_free(tmp_err); goto on_failure; } @@ -356,8 +362,10 @@ static gboolean uat_dlg_cb(GtkWidget *win _U_, gpointer user_data) { } if (f[colnum].cb.chk) { - if (! f[colnum].cb.chk(dd->rec, text, len, f[colnum].cbdata.chk, f[colnum].fld_data, &err)) { - err = ep_strdup_printf("error in column '%s': %s", f[colnum].title, err); + if (! f[colnum].cb.chk(dd->rec, text, len, f[colnum].cbdata.chk, f[colnum].fld_data, (const char**)&err)) { + tmp_err = err; + err = g_strdup_printf("error in column '%s': %s", f[colnum].title, tmp_err); + g_free(tmp_err); goto on_failure; } } @@ -368,16 +376,12 @@ static gboolean uat_dlg_cb(GtkWidget *win _U_, gpointer user_data) { } if (dd->uat->update_cb) { - dd->uat->update_cb(dd->rec, &err); + dd->uat->update_cb(dd->rec, (const char**)&err); if (err) { - char *tmp; - tmp = ep_strdup_printf("error updating record: %s", err); - /* XXX bit of a hack to remove emem from dissectors, this can - * be removed as proper use of glib memory is propogated - * through the rest of the UAT code */ - g_free((char*)err); - err = tmp; + tmp_err = err; + err = g_strdup_printf("error updating record: %s", tmp_err); + g_free(tmp_err); goto on_failure; } } @@ -417,6 +421,7 @@ static gboolean uat_dlg_cb(GtkWidget *win _U_, gpointer user_data) { on_failure: report_failure("%s", err); + g_free(err); return FALSE; } @@ -451,12 +456,15 @@ static void uat_edit_dialog(uat_t *uat, gint row, gboolean copy) { struct _uat_dlg_data *dd = (struct _uat_dlg_data *)g_malloc(sizeof(struct _uat_dlg_data)); uat_field_t *f = uat->fields; guint colnum; + gchar *tmp_str; /* Only allow a single operation at a time, prevents bug 9129 */ limit_buttons(uat); dd->entries = g_ptr_array_new(); - dd->win = dlg_conf_window_new(ep_strdup_printf("%s: %s", uat->name, (row == -1 ? "New" : "Edit"))); + tmp_str = g_strdup_printf("%s: %s", uat->name, (row == -1 ? "New" : "Edit")); + dd->win = dlg_conf_window_new(tmp_str); + g_free(tmp_str); dd->uat = uat; if (copy && row >= 0) { dd->rec = g_malloc0(uat->record_size); @@ -501,14 +509,17 @@ static void uat_edit_dialog(uat_t *uat, gint row, gboolean copy) { for ( colnum = 0; colnum < uat->ncols; colnum++ ) { GtkWidget *entry, *label, *event_box; char *text = fld_tostr(dd->rec, &(f[colnum])); + char *label_text; gchar *fc_filename; event_box = gtk_event_box_new(); - label = gtk_label_new(ep_strdup_printf("%s:", f[colnum].title)); + label_text = g_strdup_printf("%s:", f[colnum].title); + label = gtk_label_new(label_text); if (f[colnum].desc != NULL) gtk_widget_set_tooltip_text(event_box, f[colnum].desc); + g_free(label_text); gtk_misc_set_alignment(GTK_MISC(label), 1.0f, 0.5f); ws_gtk_grid_attach_defaults(GTK_GRID(main_grid), event_box, 0, colnum, 1, 1); gtk_container_add(GTK_CONTAINER(event_box), label); @@ -584,6 +595,7 @@ static void uat_edit_dialog(uat_t *uat, gint row, gboolean copy) { g_assert_not_reached(); return; } + g_free(text); } gtk_widget_grab_default(bt_ok); @@ -639,6 +651,7 @@ static void uat_del_dlg(uat_t *uat, int idx) { uat_field_t *f = uat->fields; guint colnum; void *rec = UAT_INDEX_PTR(uat, idx); + gchar *tmp_str; struct _uat_del *ud = (struct _uat_del *)g_malloc(sizeof(struct _uat_del)); @@ -647,7 +660,9 @@ static void uat_del_dlg(uat_t *uat, int idx) { ud->uat = uat; ud->idx = idx; - ud->win = win = dlg_conf_window_new(ep_strdup_printf("%s: Confirm Delete", uat->name)); + tmp_str = g_strdup_printf("%s: Confirm Delete", uat->name); + ud->win = win = dlg_conf_window_new(tmp_str); + g_free(tmp_str); gtk_window_set_resizable(GTK_WINDOW(win), FALSE); gtk_window_resize(GTK_WINDOW(win), 400, 25*(uat->ncols+2)); @@ -665,13 +680,16 @@ static void uat_del_dlg(uat_t *uat, int idx) { GtkWidget *label; char *text = fld_tostr(rec, &(f[colnum])); - label = gtk_label_new(ep_strdup_printf("%s:", f[colnum].title)); + tmp_str = g_strdup_printf("%s:", f[colnum].title); + label = gtk_label_new(tmp_str); gtk_misc_set_alignment(GTK_MISC(label), 1.0f, 0.5f); ws_gtk_grid_attach_defaults(GTK_GRID(main_grid), label, 0, colnum, 1, 1); + g_free(tmp_str); label = gtk_label_new(text); gtk_misc_set_alignment(GTK_MISC(label), 1.0f, 0.5f); ws_gtk_grid_attach_defaults(GTK_GRID(main_grid), label, 1, colnum, 1, 1); + g_free(text); } bbox = dlg_button_row_new(GTK_STOCK_CANCEL, GTK_STOCK_DELETE, NULL); @@ -789,7 +807,7 @@ static void uat_apply_changes(uat_t *uat) { static void uat_cancel_cb(GtkWidget *button _U_, gpointer u) { uat_t *uat = (uat_t *)u; - const gchar *err = NULL; + gchar *err = NULL; if (uat->changed) { uat_clear(uat); @@ -797,6 +815,7 @@ static void uat_cancel_cb(GtkWidget *button _U_, gpointer u) { if (err) { report_failure("Error while loading %s: %s", uat->name, err); + g_free(err); } uat_apply_changes (uat); @@ -820,13 +839,14 @@ static void uat_apply_cb(GtkButton *button _U_, gpointer u) { static void uat_ok_cb(GtkButton *button _U_, gpointer u) { uat_t *uat = (uat_t *)u; - const gchar *err = NULL; + gchar *err = NULL; if (uat->changed) { uat_save(uat, &err); if (err) { report_failure("Error while saving %s: %s", uat->name, err); + g_free(err); } if (uat->post_update_cb) uat->post_update_cb(); @@ -850,7 +870,7 @@ static void uat_clear_cb(GtkButton *button _U_, gpointer u) { static void uat_refresh_cb(GtkButton *button _U_, gpointer u) { uat_t *uat = (uat_t *)u; - const gchar *err = NULL; + gchar *err = NULL; guint i; uat_clear_cb(button, u); @@ -862,6 +882,7 @@ static void uat_refresh_cb(GtkButton *button _U_, gpointer u) { if (err) { report_failure("Error while loading %s: %s", uat->name, err); + g_free(err); } for (i = 0 ; i < uat->raw_data->len; i++) { @@ -886,7 +907,7 @@ static void remember_selected_row(GtkWidget *w _U_, gpointer u) { static void uat_yessave_cb(GtkWindow *w _U_, void *u) { uat_t *uat = (uat_t *)u; - const gchar *err = NULL; + gchar *err = NULL; window_delete_event_cb(uat->rep->unsaved_window, NULL, NULL); @@ -894,6 +915,7 @@ static void uat_yessave_cb(GtkWindow *w _U_, void *u) { if (err) { report_failure("Error while saving %s: %s", uat->name, err); + g_free(err); } g_signal_handlers_disconnect_by_func(uat->rep->window, uat_window_delete_event_cb, uat); @@ -936,10 +958,11 @@ static gboolean unsaved_dialog(GtkWindow *w _U_, GdkEvent *e _U_, gpointer u) { gtk_container_set_border_width(GTK_CONTAINER(vbox), 6); gtk_container_add(GTK_CONTAINER(win), vbox); - message = ep_strdup_printf("Changes to '%s' are not being saved!\n" + message = g_strdup_printf("Changes to '%s' are not being saved!\n" "Do you want to save '%s'?", uat->name, uat->name); label = gtk_label_new(message); + g_free(message); bbox = dlg_button_row_new(GTK_STOCK_YES, GTK_STOCK_NO, NULL); |