[Gtk-sharp-list] Medsphere.Widgets.FBox crashes with "must provide a protected or public IntPtr ctor"
Christian Hoff
christian_hoff at gmx.net
Tue Nov 4 08:05:39 EST 2008
Right, this errors occurs after the FBox has been disposed. Make sure
that other Gtk+ classes are not holding references to this disposed
object any more, otherwise you will run into errors in the callback
functions(here Gtk.Container.Forall_cb).
As Forall executes a function for each of the container's children the
disposed FBox is probably still a child of a container; you should call
container.Remove(FBox).
I got the same error when I was disposing a TreeModel. I had to set
TreeView.Model to null to eliminate the reference to the model in the
tree view.
Christian
Adam Tauno Williams schrieb:
> I've create a widget that extends the very cool Medsphere FBox
>
> public class PhoneTable : Medsphere.Widgets.FBox
> {
> public PhoneTable(Whitemice.ZOGI.Company company) : base()
> {
> ...
> }
> }
>
> And it works for awhile. Then it crashes with -
>
> Exception in Gtk# callback delegate
> Note: Applications can use GLib.ExceptionManager.UnhandledException to
> handle the exception.
> GLib.MissingIntPtrCtorException: GLib.Object subclass
> Whitemice.ZOGI.GtkWidgets.PhoneTable must provide a protected or public
> IntPtr ctor to support wrapping of native object handles.
> at GLib.ObjectManager.CreateObject (IntPtr raw) [0x00000]
> at GLib.Object.GetObject (IntPtr o, Boolean owned_ref) [0x00000]
> at Gtk.Container.Forall_cb (IntPtr container, Boolean
> include_internals, IntPtr cb, IntPtr data) [0x00000]
> at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e,
> Boolean is_terminal)
> at Gtk.Container.Forall_cb(IntPtr container, Boolean
> include_internals, IntPtr cb, IntPtr data)
> at GLib.ToggleRef.g_object_remove_toggle_ref(IntPtr ,
> GLib.ToggleNotifyHandler , IntPtr )
> at GLib.ToggleRef.Free()
> at GLib.Object.PerformQueuedUnrefs()
> at GLib.Timeout+TimeoutProxy.Handler()
> at Gtk.Application.gtk_main()
> at Gtk.Application.Run()
> at Whitemice.Consonance.Consonance.Main(System.String[] args)
>
> It seems like it happens as soon as an FBox has been disposed. Is there
> something different with the Medsphere widgets? I've bene using Gtk#
> for years and never had to deal with an IntPtr.
>
>
More information about the Gtk-sharp-list
mailing list