summaryrefslogtreecommitdiff
path: root/gobject
diff options
context:
space:
mode:
authorRyan Lortie <desrt@desrt.ca>2013-02-07 13:50:16 -0500
committerRyan Lortie <desrt@desrt.ca>2013-02-07 14:15:45 -0500
commit72df62600d1ab473125b6e8beb998e71aa63701e (patch)
tree91268992f4ffc11a2c9c0069ac3a5fb08a9bb5d9 /gobject
parent2f61a877d8e8e1311d905ab374e421ed0f37c3b7 (diff)
downloadglib-72df62600d1ab473125b6e8beb998e71aa63701e.tar.gz
glib-72df62600d1ab473125b6e8beb998e71aa63701e.tar.bz2
glib-72df62600d1ab473125b6e8beb998e71aa63701e.zip
disable support for unloading of dynamic types
Experimentally disable the ability to unload dynamic types by refusing to drop the last reference on types (effectively turning the type unloading into dead code). The plan is to leave things like this for a stable cycle and only proceed with removing the code if we are sure that there are no unforeseen problems. https://bugzilla.gnome.org/show_bug.cgi?id=693351
Diffstat (limited to 'gobject')
-rw-r--r--gobject/gtype.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gobject/gtype.c b/gobject/gtype.c
index 6df810c14..a82144251 100644
--- a/gobject/gtype.c
+++ b/gobject/gtype.c
@@ -2440,6 +2440,14 @@ type_data_unref_U (TypeNode *node,
NODE_NAME (node));
return;
}
+ else
+ {
+ /* This is the last reference of a type from a plugin. We are
+ * experimentally disabling support for unloading type
+ * plugins, so don't allow the last ref to drop.
+ */
+ return;
+ }
g_assert (current > 0);