From 0ec65e7a2aaabf2f979aec9a9cf73c1578bd5eb4 Mon Sep 17 00:00:00 2001 From: marcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059> Date: Sun, 11 Apr 2010 16:50:29 +0000 Subject: Fix crash when switching modules by making the addressbook module resident. git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@14038 df743ca5-7f9a-e211-a948-0013205c9059 --- mail/evolution/Makefile | 3 ++- ...modules_addressbook_evolution-module-addressbook.c | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 mail/evolution/files/patch-modules_addressbook_evolution-module-addressbook.c (limited to 'mail') diff --git a/mail/evolution/Makefile b/mail/evolution/Makefile index 8fbfbb7e8..ac6d018bd 100644 --- a/mail/evolution/Makefile +++ b/mail/evolution/Makefile @@ -3,11 +3,12 @@ # Whom: Ade Lovett <ade@FreeBSD.org> # # $FreeBSD$ -# $MCom: ports/mail/evolution/Makefile,v 1.219 2010/03/15 12:36:30 kwm Exp $ +# $MCom: ports/mail/evolution/Makefile,v 1.220 2010/04/01 11:17:55 kwm Exp $ # PORTNAME= evolution PORTVERSION= 2.30.0.1 +PORTREVISION= 1 CATEGORIES= mail gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome2 diff --git a/mail/evolution/files/patch-modules_addressbook_evolution-module-addressbook.c b/mail/evolution/files/patch-modules_addressbook_evolution-module-addressbook.c new file mode 100644 index 000000000..0df6bd970 --- /dev/null +++ b/mail/evolution/files/patch-modules_addressbook_evolution-module-addressbook.c @@ -0,0 +1,19 @@ +--- modules/addressbook/evolution-module-addressbook.c.orig 2010-04-11 12:47:18.000000000 -0400 ++++ modules/addressbook/evolution-module-addressbook.c 2010-04-11 12:48:06.000000000 -0400 +@@ -47,3 +47,16 @@ G_MODULE_EXPORT void + e_module_unload (GTypeModule *type_module) + { + } ++ ++G_MODULE_EXPORT const gchar * ++g_module_check_init (GModule *module) ++{ ++ /* FIXME Until addressbook is split into a module library and a ++ * reusable shared library, prevent the module from ++ * being unloaded. Unloading the module resets all ++ * static variables, which screws up foo_get_type() ++ * functions among other things. */ ++ g_module_make_resident (module); ++ ++ return NULL; ++} -- cgit v1.2.3