diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-08-27 05:34:06 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-08-27 05:34:06 +0000 |
commit | 0267ffb01c08da9fb9bb524e1279cc09465b5111 (patch) | |
tree | a8d268160046a27b06a701508c1b1d250d636b26 /gtk/gui_utils.c | |
parent | db04e3941f6a5d34350618ca9e5a5b74b4884491 (diff) | |
download | wireshark-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.c | 25 |
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); + } + |