diff options
| -rw-r--r-- | gtk/ScintillaGTK.cxx | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index 3a403ac7e..b0e99e7a6 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -2343,9 +2343,12 @@ void ScintillaGTK::RealizeText(GtkWidget *widget, void*) {  	}  } +static GObjectClass *scintilla_class_parent_class; +  void ScintillaGTK::Destroy(GObject *object) {  	try {  		ScintillaObject *scio = reinterpret_cast<ScintillaObject *>(object); +  		// This avoids a double destruction  		if (!scio->pscin)  			return; @@ -2355,10 +2358,7 @@ void ScintillaGTK::Destroy(GObject *object) {  		delete sciThis;  		scio->pscin = 0; -		// Always chain up to the parent class -		GType parent_type = g_type_parent(scintilla_get_type()); // GTK_TYPE_CONTAINER -		GObjectClass *parent = G_OBJECT_CLASS(g_type_class_peek(parent_type)); -		parent->finalize(object); +		scintilla_class_parent_class->finalize(object);  	} catch (...) {  		// Its dead so nowhere to save the status  	} @@ -2921,7 +2921,7 @@ static void scintilla_class_init(ScintillaClass *klass) {  		klass->command = NULL;  		klass->notify = NULL; - +		scintilla_class_parent_class = G_OBJECT_CLASS(g_type_class_peek_parent(klass));  		ScintillaGTK::ClassInit(object_class, widget_class, container_class);  	} catch (...) {  	}  | 
