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
This commit is contained in:
Matthias Clasen 2008-12-02 05:14:00 +00:00
parent 26a4a31b1a
commit 6537b5e11d
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,12 @@
2008-12-02 Matthias Clasen <mclasen@redhat.com>
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 <mclasen@redhat.com>
* === Released 2.19.2 ===

View File

@ -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;
}