diff options
Diffstat (limited to 'gtk/ScintillaGTK.cxx')
-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 (...) { } |