aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/mozilla-embed.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'embed/mozilla/mozilla-embed.cpp')
-rw-r--r--embed/mozilla/mozilla-embed.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp
index 8c39dd460..05408973f 100644
--- a/embed/mozilla/mozilla-embed.cpp
+++ b/embed/mozilla/mozilla-embed.cpp
@@ -382,6 +382,7 @@ static void
mozilla_embed_destroy (GtkObject *object)
{
int i;
+ MozillaEmbed *embed = MOZILLA_EMBED (object);
for (i = 0; signal_connections[i].event != NULL; i++)
{
@@ -390,6 +391,13 @@ mozilla_embed_destroy (GtkObject *object)
(gpointer)signal_connections[i].func,
(void *)object);
}
+
+ if (embed->priv->wrapper)
+ {
+ embed->priv->wrapper->Destroy();
+ delete embed->priv->wrapper;
+ embed->priv->wrapper = NULL;
+ }
GTK_OBJECT_CLASS (parent_class)->destroy (object);
}
@@ -406,14 +414,7 @@ mozilla_embed_finalize (GObject *object)
g_return_if_fail (embed->priv != NULL);
- if (embed->priv->wrapper)
- {
- embed->priv->wrapper->Destroy();
- delete embed->priv->wrapper;
- embed->priv->wrapper = NULL;
- }
-
- delete embed->priv;
+ g_free (embed->priv);
G_OBJECT_CLASS (parent_class)->finalize (object);