From 6537b5e11d87b6a9bce4ce1e73e7a6f4cb01c1ce Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 2 Dec 2008 05:14:00 +0000 Subject: [PATCH] Always reset the use count to its previous value before returning FALSE. * gtypemodule.c (g_type_module_use): Always reset the use count to its previous value before returning FALSE. Pointed out by Johan Billien. svn path=/trunk/; revision=7725 --- gobject/ChangeLog | 9 +++++++++ gobject/gtypemodule.c | 3 +++ 2 files changed, 12 insertions(+) diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 8d6ec59be..13697bdee 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,12 @@ +2008-12-02 Matthias Clasen + + Bug 473150 – g_type_module_use inconsistently increases the use + counter in case of error + + * gtypemodule.c (g_type_module_use): Always reset the use count + to its previous value before returning FALSE. Pointed out by + Johan Billien. + 2008-12-01 Matthias Clasen * === Released 2.19.2 === diff --git a/gobject/gtypemodule.c b/gobject/gtypemodule.c index 07e315770..1ba64ade3 100644 --- a/gobject/gtypemodule.c +++ b/gobject/gtypemodule.c @@ -238,6 +238,8 @@ g_type_module_find_interface_info (GTypeModule *module, * * Increases the use count of a #GTypeModule by one. If the * use count was zero before, the plugin will be loaded. + * If loading the plugin fails, the use count is reset to + * its prior value. * * Returns: %FALSE if the plugin needed to be loaded and * loading the plugin failed. @@ -267,6 +269,7 @@ g_type_module_use (GTypeModule *module) g_warning ("plugin '%s' failed to register type '%s'\n", module->name ? module->name : "(unknown)", g_type_name (type_info->type)); + module->use_count--; return FALSE; }