diff options
author | bland <bland@df743ca5-7f9a-e211-a948-0013205c9059> | 2005-09-17 03:39:23 +0800 |
---|---|---|
committer | bland <bland@df743ca5-7f9a-e211-a948-0013205c9059> | 2005-09-17 03:39:23 +0800 |
commit | 276a365577c784bc62dd3d9240447e7cac745470 (patch) | |
tree | c480c444970e5ca7332688a5fbcd6915b9d97451 /deskutils/gucharmap | |
parent | 37723b01ab4d12f093914f9a6c3b2fbfeb832db9 (diff) | |
download | marcuscom-ports-276a365577c784bc62dd3d9240447e7cac745470.tar marcuscom-ports-276a365577c784bc62dd3d9240447e7cac745470.tar.gz marcuscom-ports-276a365577c784bc62dd3d9240447e7cac745470.tar.bz2 marcuscom-ports-276a365577c784bc62dd3d9240447e7cac745470.tar.lz marcuscom-ports-276a365577c784bc62dd3d9240447e7cac745470.tar.xz marcuscom-ports-276a365577c784bc62dd3d9240447e7cac745470.tar.zst marcuscom-ports-276a365577c784bc62dd3d9240447e7cac745470.zip |
Finish lazy custom class implementation.
Derivatives *must* call finalize from parent class. Otherwise we may
fall into situation when signal get delivered to already destroyed
GtkWindow object.
This fixes following crash with debug malloc() libarry:
Run gucharmap -> Copy a few chars to clipboard -> Close
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@4841 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'deskutils/gucharmap')
-rw-r--r-- | deskutils/gucharmap/Makefile | 2 | ||||
-rw-r--r-- | deskutils/gucharmap/files/patch-gucharmap_gucharmap-window.c | 33 |
2 files changed, 30 insertions, 5 deletions
diff --git a/deskutils/gucharmap/Makefile b/deskutils/gucharmap/Makefile index ffbc5b2b1..061f3462d 100644 --- a/deskutils/gucharmap/Makefile +++ b/deskutils/gucharmap/Makefile @@ -3,10 +3,12 @@ # Whom: Joe Marcus Clarke <marcus@FreeBSD.org> # # $FreeBSD: ports/deskutils/gucharmap/Makefile,v 1.25 2005/03/12 10:52:59 marcus Exp $ +# $MCom$ # PORTNAME= gucharmap PORTVERSION= 1.4.4 +PORTREVISION= 2 CATEGORIES= deskutils gnome MASTER_SITES= ${MASTER_SITE_GNOME} MASTER_SITE_SUBDIR= sources/${PORTNAME}/1.4 diff --git a/deskutils/gucharmap/files/patch-gucharmap_gucharmap-window.c b/deskutils/gucharmap/files/patch-gucharmap_gucharmap-window.c index ce9879281..c0abeb262 100644 --- a/deskutils/gucharmap/files/patch-gucharmap_gucharmap-window.c +++ b/deskutils/gucharmap/files/patch-gucharmap_gucharmap-window.c @@ -1,6 +1,15 @@ ---- gucharmap/gucharmap-window.c.orig Fri Feb 27 13:11:01 2004 -+++ gucharmap/gucharmap-window.c Wed Mar 3 22:45:21 2004 -@@ -417,8 +417,8 @@ +--- gucharmap/gucharmap-window.c.orig Mon Jan 24 05:56:53 2005 ++++ gucharmap/gucharmap-window.c Sat Sep 17 04:04:07 2005 +@@ -82,6 +82,8 @@ + ChaptersMode chapters_mode; + }; + ++static GtkWindowClass *parent_class = NULL; ++ + static void + status_message (GtkWidget *widget, + const gchar *message, +@@ -417,8 +419,8 @@ { GucharmapWindowPrivate *priv = GUCHARMAP_WINDOW_GET_PRIVATE (guw); gucharmap_charmap_set_chapters (guw->charmap, GUCHARMAP_CHAPTERS (gucharmap_script_chapters_new ())); @@ -11,7 +20,7 @@ } } -@@ -430,8 +430,8 @@ +@@ -430,8 +432,8 @@ { GucharmapWindowPrivate *priv = GUCHARMAP_WINDOW_GET_PRIVATE (guw); gucharmap_charmap_set_chapters (guw->charmap, GUCHARMAP_CHAPTERS (gucharmap_block_chapters_new ())); @@ -22,7 +31,7 @@ } } -@@ -834,12 +834,12 @@ +@@ -834,12 +836,12 @@ g_signal_connect (priv->status, "realize", G_CALLBACK (status_realize), guw); priv->progress = gtk_progress_bar_new (); @@ -37,3 +46,17 @@ #endif gtk_widget_show_all (hbox); +@@ -886,11 +888,13 @@ + g_free (priv->last_search); + */ + #endif ++ G_OBJECT_CLASS (parent_class)->finalize (object); + } + + static void + gucharmap_window_class_init (GucharmapWindowClass *clazz) + { ++ parent_class = g_type_class_peek_parent (clazz); + GTK_WIDGET_CLASS (clazz)->show_all = show_all; + G_OBJECT_CLASS (clazz)->finalize = window_finalize; + g_type_class_add_private (clazz, sizeof (GucharmapWindowPrivate)); |