Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 46912556777792 (LWP 32374)] html_image_shutdown (image_factory=0x942a10, image=0x0) at htmlimagefactory.c:132 132 g_hash_table_remove (image_factory->image_hash, image->uri); (gdb) where #0 html_image_shutdown (image_factory=0x942a10, image=0x0) at htmlimagefactory.c:132 #1 0x00002aaaacb41337 in g_object_disconnect () from /usr/lib/libgobject-2.0.so.0 #2 0x00002aaaacc88f27 in g_datalist_id_set_data_full () from /usr/lib/libglib-2.0.so.0 #3 0x00002aaaacb419e8 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 #4 0x00002aaab0ccc680 in html_style_background_unref (background=0x1d1df70) at htmlstylebackground.c:44 #5 0x00002aaab0ccb9f9 in html_style_unref (style=0xb48210) at htmlstyle.c:212 #6 0x00002aaab0cb429c in dom_node_finalize (object=0xbcd260) at dom-node.c:801 #7 0x00002aaaacb41a57 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 #8 0x00002aaab0cb4285 in dom_node_finalize (object=0xbcd230) at dom-node.c:794 #9 0x00002aaaacb41a57 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 #10 0x00002aaab0cb4285 in dom_node_finalize (object=0xbcd200) at dom-node.c:794 #11 0x00002aaaacb41a57 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 #12 0x00002aaab0cb4285 in dom_node_finalize (object=0xbcced0) at dom-node.c:794 #13 0x00002aaaacb41a57 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 #14 0x00002aaab0cb1407 in html_document_clear (document=0x9425e0) at htmldocument.c:910 #15 0x00000000004045ed in web_go (data=0x9406b0, url=Variable "url" is not available. ) at web_main.c:146 #16 0x00002aaaacb3f3c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #17 0x00002aaaacb4df2c in g_signal_stop_emission () ---Type to continue, or q to quit--- from /usr/lib/libgobject-2.0.so.0 #18 0x00002aaaacb4f3ec in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #19 0x00002aaaacb52acd in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #20 0x00002aaaacb3f3c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #21 0x00002aaaacb4df2c in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #22 0x00002aaaacb4f3ec in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #23 0x00002aaaacb4f7a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #24 0x00002aaaaad53877 in _gtk_button_set_depressed () from /usr/lib/libgtk-x11-2.0.so.0 #25 0x00002aaaacb3f3c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #26 0x00002aaaacb4dab1 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #27 0x00002aaaacb4f3ec in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #28 0x00002aaaacb4f7a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #29 0x00002aaaaad52e29 in _gtk_button_paint () from /usr/lib/libgtk-x11-2.0.so.0 #30 0x00002aaaaae0b6f0 in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0 ---Type to continue, or q to quit--- #31 0x00002aaaacb3f3c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #32 0x00002aaaacb4e0ab in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0 #33 0x00002aaaacb4f127 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #34 0x00002aaaacb4f7a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #35 0x00002aaaaaee9ab5 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0 #36 0x00002aaaaae09afb in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 #37 0x00002aaaaae09f77 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #38 0x00002aaaab38ef4c in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0 #39 0x00002aaaacc9b4bd in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #40 0x00002aaaacc9e65f in g_main_context_check () from /usr/lib/libglib-2.0.so.0 #41 0x00002aaaacc9e90a in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #42 0x00002aaaaae09360 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #43 0x000000000040595a in main (argc=1, argv=0x7fffffa2d858) at web_main.c:680 (gdb) print image $1 = (HtmlImage *) 0x0 (gdb) print image_factory $2 = (HtmlImageFactory *) 0x942a10 (gdb) print *image_factory $3 = {parent = {g_type_instance = {g_class = 0x942760}, ref_count = 1, qdata = 0x0}, image_hash = 0x942a70} (gdb) select 4 (gdb) print background $4 = (HtmlStyleBackground *) 0x1d1df70 (gdb) print background->image $5 = (HtmlImage *) 0x1786e70 (gdb) print *background->image $6 = {parent = {g_type_instance = {g_class = 0x98fc30}, ref_count = 1, qdata = 0x0}, pixbuf = 0x20356c0, uri = 0x1d1d7a0 "/img/top2.png", broken = 0, loading = 0, stream = 0x0, loader = 0x0} ----------------------- htmlimagefactory.c: line 129 onwards static void html_image_shutdown (HtmlImageFactory *image_factory, HtmlImage *image) { g_hash_table_remove (image_factory->image_hash, image->uri); } HtmlImage * html_image_factory_get_image (HtmlImageFactory *image_factory, const gchar *uri) { HtmlImage *image; image = g_hash_table_lookup (image_factory->image_hash, uri); if (image) image = (HtmlImage *)g_object_ref (G_OBJECT (image)); else { HtmlStream *stream; image = HTML_IMAGE (g_object_new (HTML_IMAGE_TYPE, NULL)); g_object_weak_ref (G_OBJECT (image), (GWeakNotify)html_image_shutdown, image_factory); image->loading = TRUE; stream = html_stream_new ((HtmlStreamWriteFunc)write_pixbuf, (HtmlStreamCloseFunc)close_pixbuf, image); image->stream = stream; g_object_add_weak_pointer (G_OBJECT (stream), (gpointer *) &(image->stream)); g_object_add_weak_pointer (G_OBJECT (image), (gpointer *) &(stream->user_data)); g_signal_emit (G_OBJECT (image_factory), image_factory_signals [REQUEST_IMAGE], 0, uri, stream); image->uri = g_strdup (uri); g_hash_table_insert (image_factory->image_hash, image->uri, image); } return image; }