[GtkGLExt] "couldn't find weak ref" to gldrawable



Has anyone seen this:

        GLib-GObject-WARNING **: IA__g_object_weak_unref: couldn't find weak ref 0x3abd0692e0(0x7fff9d759648)

... as a result of this code on line 111 of gdkglcontext-x11.c?

        g_object_remove_weak_pointer (G_OBJECT (impl->gldrawable),
                                      &gldrawable_location);

I have a GtkPlug whose associated GtkSocket has been destroyed; and
accordingly the plug itself is being destroyed.  The stack leading up to
this looks like this:

        #0  IA__g_object_weak_unref (object=0x2337e00, notify=0x3abd0692e0 <IA__g_nullify_pointer>, data=0x7fffa8b41a58) at gobject.c:1529
        #1  0x000000000042ae99 in _gdk_gl_context_destroy (glcontext=<value optimized out>) at ../../../.././../lib/gtkglext/gdk/x11/gdkglcontext-x11.c:111
        #2  0x00000000004271b8 in gdk_gl_context_destroy (glcontext=0x234e800) at ../../.././../lib/gtkglext/gdk/gdkglcontext.c:118
        #3  0x0000000000426302 in gtk_gl_widget_unrealize (widget=0x2347b40, private=0x2349960) at ../../.././../lib/gtkglext/gtk/gtkglwidget.c:149
        #4  0x0000003abd40b6dd in IA__g_closure_invoke (closure=<value optimized out>, return_value=<value optimized out>, n_param_values=<value optimized out>, param_values=<value optimized out>, invocation_hint=<value optimized out>) at gclosure.c:490
        #5  0x0000003abd41f6c1 in signal_emit_unlocked_R (node=<value optimized out>, detail=<value optimized out>, instance=<value optimized out>, emission_return=<value optimized out>, instance_and_params=<value optimized out>) at gsignal.c:2440
        #6  0x0000003abd420b9c in IA__g_signal_emit_valist (instance=<value optimized out>, signal_id=<value optimized out>, detail=<value optimized out>, var_args=<value optimized out>) at gsignal.c:2199
        #7  0x0000003abd4210e3 in IA__g_signal_emit (instance=<value optimized out>, signal_id=<value optimized out>, detail=<value optimized out>) at gsignal.c:2243
        #8  0x0000003abfaf1dbb in IA__gtk_widget_unrealize (widget=Could not find the frame base for "IA__gtk_widget_unrealize".
        ) at gtkwidget.c:3310
        #9  0x0000003abf879afc in gtk_bin_forall (container=Could not find the frame base for "gtk_bin_forall".
        ) at gtkbin.c:133
        #10 0x0000003abf8cfc0b in IA__gtk_container_forall (container=Could not find the frame base for "IA__gtk_container_forall".
        ) at gtkcontainer.c:1453
        #11 0x0000003abfaf9f62 in gtk_widget_real_unrealize (widget=Could not find the frame base for "gtk_widget_real_unrealize".
        ) at gtkwidget.c:8004
        #12 0x0000003abfb059fe in gtk_window_unrealize (widget=Could not find the frame base for "gtk_window_unrealize".
        ) at gtkwindow.c:4687
        #13 0x0000003abf9c2fe6 in gtk_plug_unrealize (widget=Could not find the frame base for "gtk_plug_unrealize".
        ) at gtkplug.c:520
        #14 0x0000003abd40b6dd in IA__g_closure_invoke (closure=<value optimized out>, return_value=<value optimized out>, n_param_values=<value optimized out>, param_values=<value optimized out>, invocation_hint=<value optimized out>) at gclosure.c:490
        #15 0x0000003abd41f392 in signal_emit_unlocked_R (node=<value optimized out>, detail=<value optimized out>, instance=<value optimized out>, emission_return=<value optimized out>, instance_and_params=<value optimized out>) at gsignal.c:2478
        #16 0x0000003abd420b9c in IA__g_signal_emit_valist (instance=<value optimized out>, signal_id=<value optimized out>, detail=<value optimized out>, var_args=<value optimized out>) at gsignal.c:2199
        #17 0x0000003abd4210e3 in IA__g_signal_emit (instance=<value optimized out>, signal_id=<value optimized out>, detail=<value optimized out>) at gsignal.c:2243
        #18 0x0000003abfaf1dbb in IA__gtk_widget_unrealize (widget=Could not find the frame base for "IA__gtk_widget_unrealize".
        ) at gtkwidget.c:3310
        #19 0x0000003abfaf9bc6 in gtk_widget_dispose (object=Could not find the frame base for "gtk_widget_dispose".
        ) at gtkwidget.c:7852
        #20 0x0000003abfb011df in gtk_window_dispose (object=Could not find the frame base for "gtk_window_dispose".
        ) at gtkwindow.c:1969
        #21 0x0000003abd40dad0 in IA__g_object_run_dispose (object=0x2323000) at gobject.c:573
        #22 0x0000003abf9b3582 in IA__gtk_object_destroy (object=Could not find the frame base for "IA__gtk_object_destroy".
        ) at gtkobject.c:403
        #23 0x0000003abfaf10fd in IA__gtk_widget_destroy (widget=Could not find the frame base for "IA__gtk_widget_destroy".
        ) at gtkwidget.c:2889
        #24 0x0000003abf9c299b in _gtk_plug_send_delete_event (widget=Could not find the frame base for "_gtk_plug_send_delete_event".
        ) at gtkplug.c:304
        #25 0x0000003abfb2d8f0 in _gtk_plug_windowing_filter_func (gdk_xevent=Could not find the frame base for "_gtk_plug_windowing_filter_func".
        ) at gtkplug-x11.c:280
        #26 0x0000003abf45418b in gdk_event_apply_filters (xevent=Could not find the frame base for "gdk_event_apply_filters".
        ) at gdkevents-x11.c:345
        #27 0x0000003abf45527a in gdk_event_translate (display=Could not find the frame base for "gdk_event_translate".
        ) at gdkevents-x11.c:984
        #28 0x0000003abf457a16 in _gdk_events_queue (display=Could not find the frame base for "_gdk_events_queue".
        ) at gdkevents-x11.c:2285
        #29 0x0000003abf457bec in gdk_event_dispatch (source=Could not find the frame base for "gdk_event_dispatch".
        ) at gdkevents-x11.c:2345
        #30 0x0000003abd0374db in IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2012
        #31 0x0000003abd03acbd in g_main_context_iterate (context=<value optimized out>, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2645
        #32 0x0000003abd03b1ed in IA__g_main_loop_run (loop=<value optimized out>) at gmain.c:2853
        #33 0x0000003abf983bf0 in IA__gtk_main () at gtkmain.c:1163
        #34 0x000000000040e8a8 in main (argc=1, argv=0x7fffa8b43198) at .././../src/openvrml-xembed/main.cpp:258
        
Reading the documentation on GObject weak pointers, this suggests to me
that the GdkGLDrawable has been destroyed without having been finalized
(or perhaps it's in some intermediate destruction state where finalize
hasn't run yet). What might cause this? Is this related to the parent
GtkSocket (and thus parent GdkWindow) going away?

-- 
Braden McDaniel                           e-mail: <braden endoframe com>
<http://endoframe.com>                    Jabber: <braden jabber org>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]