From 9bc789f2e6b0f057e979367e3b10223937d72481 Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Fri, 2 May 2008 16:51:37 +0000 Subject: [PATCH] 2008-05-02 Mike Kestner * gtk/Object.custom: some NULL guarding in Dispose and Destroy handling. svn path=/trunk/gtk-sharp/; revision=102347 --- ChangeLog | 5 +++++ gtk/Object.custom | 17 ++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3baba3283..86a719891 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-05-02 Mike Kestner + + * gtk/Object.custom: some NULL guarding in Dispose and + Destroy handling. + 2008-05-02 Mike Kestner * atk/Atk.metadata: hide Global.AddGlobalEventListener. diff --git a/gtk/Object.custom b/gtk/Object.custom index a30ba2650..595477cb6 100755 --- a/gtk/Object.custom +++ b/gtk/Object.custom @@ -97,6 +97,8 @@ public override void Dispose () { + if (Handle == IntPtr.Zero) + return; InternalDestroyed -= NativeDestroyHandler; base.Dispose (); } @@ -109,12 +111,11 @@ return base.Raw; } set { + if (value != IntPtr.Zero) + g_object_ref_sink (value); base.Raw = value; - if (value == IntPtr.Zero) - return; - - g_object_ref_sink (value); - InternalDestroyed += NativeDestroyHandler; + if (value != IntPtr.Zero) + InternalDestroyed += NativeDestroyHandler; } } @@ -123,8 +124,10 @@ public virtual void Destroy () { - if (Handle != IntPtr.Zero) - gtk_object_destroy (Handle); + if (Handle == IntPtr.Zero) + return; + InternalDestroyed -= NativeDestroyHandler; + gtk_object_destroy (Handle); } [DllImport("gtksharpglue-2")]