aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/gui_utils.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-08-27 05:34:06 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-08-27 05:34:06 +0000
commit0267ffb01c08da9fb9bb524e1279cc09465b5111 (patch)
treea8d268160046a27b06a701508c1b1d250d636b26 /gtk/gui_utils.c
parentdb04e3941f6a5d34350618ca9e5a5b74b4884491 (diff)
downloadwireshark-0267ffb01c08da9fb9bb524e1279cc09465b5111.tar.gz
wireshark-0267ffb01c08da9fb9bb524e1279cc09465b5111.tar.bz2
wireshark-0267ffb01c08da9fb9bb524e1279cc09465b5111.zip
Don't copy const strings, store the pointer in the list store instead,
saves memory. svn path=/trunk/; revision=29582
Diffstat (limited to 'gtk/gui_utils.c')
-rw-r--r--gtk/gui_utils.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/gtk/gui_utils.c b/gtk/gui_utils.c
index dad4e603ae..29a8c40a31 100644
--- a/gtk/gui_utils.c
+++ b/gtk/gui_utils.c
@@ -1193,8 +1193,31 @@ present_as_hex_func (GtkTreeViewColumn *column _U_,
gtk_tree_model_get(model, iter, col, &val, -1);
g_snprintf(buf, sizeof(buf), "0x%02x", val);
- /* restore previous locale setting */
g_object_set(renderer, "text", buf, NULL);
}
+/*
+ * This function can be called from gtk_tree_view_column_set_cell_data_func()
+ * the user data must be the colum number.
+ * Renders the const static string whos pointer is stored
+ */
+
+void
+str_ptr_data_func (GtkTreeViewColumn *column _U_,
+ GtkCellRenderer *renderer,
+ GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer user_data)
+ {
+ const gchar *str = NULL;
+
+ /* The col to get data from is in userdata */
+ gint data_column = GPOINTER_TO_INT(user_data);
+
+ gtk_tree_model_get(model, iter, data_column, &str, -1);
+ /* XXX should we check that str is non NULL and print a warning or do assert? */
+
+ g_object_set(renderer, "text", str, NULL);
+ }
+