summaryrefslogtreecommitdiff
path: root/ui/gtk/uat_gui.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-01-09 19:50:09 -0500
committerMichael Mann <mmann78@netscape.net>2015-01-12 14:25:12 +0000
commit7967ef9510f81e40c75c2907b632b7b672d5fb49 (patch)
tree45b376aa004be1ec521b23904d8f624198a62da4 /ui/gtk/uat_gui.c
parent554a3972cd085a17d7f7a9ed4d235234994907a3 (diff)
downloadwireshark-7967ef9510f81e40c75c2907b632b7b672d5fb49.tar.gz
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.c91
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);