c - g_hash_table_lookup() not accepting variable as parameter -


consider following code:

gtk_widget_show(g_hash_table_lookup(widgetbuffer,"togglebutton")); gtk_toggle_button_set_active(gtk_toggle_button(g_hash_table_lookup(widgetbuffer,"togglebutton"))),true); 

line 1 works fine, line 2 throws error:

gtk-critical **: gtk_toggle_button_set_active: assertion `gtk_is_toggle_button (toggle_button)' failed 

why this? if g_hash_table_lookup returning gtkwidget pointer gtk_widget_show handles fine, why can't gtk_toggle_button() cast it's type properly?

(also, gtk_toggle_button_set_active causes no errors on compile, @ runtime)

edit: clarity, is gtktogglebutton (note dereferencer , how causes error):

gtk_toggle_button_set_active(*gtk_toggle_button(g_hash_table_lookup(widgetbuffer,"togglebutton"))),true); note: expected ‘struct gtktogglebutton *’ argument of type ‘gtktogglebutton’ 

however

printf("pointer: %p\n",gtk_toggle_button(g_hash_table_lookup(widgetbuffer,(gchar *) xmlgetprop(cur2, (xmlchar *) "name")))); printf("xml data: %s\n",xmlgetprop(cur2, (xmlchar *) "name")); printf("hash table output pointer: %p\n\n",g_hash_table_lookup(widgetbuffer,xmlgetprop(cur2, (xmlchar *) "name"))); 

thoroughly confused.

typical output:

pointer: (nil) xml data: log hash table output pointer: (nil) 

just make sure:

printf("manual hash table output pointer: %p\n", g_hash_table_lookup(widgetbuffer,(gchar *) "log")); printf("manual hash table output pointer: %p\n", g_hash_table_lookup(widgetbuffer,"log")); printf("manual hash table output pointer: %p\n", g_hash_table_lookup(widgetbuffer,"(char *) log")); 

all return:

manual hash table output pointer: 0x1e08430 

perhaps has removed last reference toggle button between time when added hash table , when call set_active() on it?

but think it's more you're not getting pointer out think are. trick of dereferencing *gtk_toggle_button(g_hash_table_lookup(...)) doesn't tell pointer stored in hash table; gtk_toggle_button() casts pointer gtktogglebutton *, no matter dereference, compiler thinks gtktogglebutton structure.


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -