diff options
author | Přemysl Janouch <p.janouch@gmail.com> | 2012-08-11 21:00:38 +0200 |
---|---|---|
committer | Přemysl Janouch <p.janouch@gmail.com> | 2012-08-12 01:01:13 +0200 |
commit | bb224bafd043e07fd18e3d8cda2c3f41c132e507 (patch) | |
tree | 2332e4a1228bb43324ce56bc8253595e979ee11f /liblogdiag/ld-symbol-category.c | |
parent | f55afb6542b9eb39e56a32dc8a18002ad680ad41 (diff) | |
download | logdiag-bb224bafd043e07fd18e3d8cda2c3f41c132e507.tar.gz logdiag-bb224bafd043e07fd18e3d8cda2c3f41c132e507.tar.xz logdiag-bb224bafd043e07fd18e3d8cda2c3f41c132e507.zip |
More fixing.
* Fix a resource leak in LdLibrary.
* Add missing property change notifiers
to ld_diagram_object_{get,set}_storage().
* Don't unref the parameter in ld_symbol_category_remove_{symbol,subcategory}
if it wasn't actually removed from the internal list.
* Fix a cyclic dependency problem in LdDiagram.
Diffstat (limited to 'liblogdiag/ld-symbol-category.c')
-rw-r--r-- | liblogdiag/ld-symbol-category.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/liblogdiag/ld-symbol-category.c b/liblogdiag/ld-symbol-category.c index d8150dc..4c35c4c 100644 --- a/liblogdiag/ld-symbol-category.c +++ b/liblogdiag/ld-symbol-category.c @@ -325,8 +325,11 @@ ld_symbol_category_remove_symbol (LdSymbolCategory *self, g_return_if_fail (LD_IS_SYMBOL_CATEGORY (self)); g_return_if_fail (LD_IS_SYMBOL (symbol)); - g_object_unref (symbol); - self->priv->symbols = g_slist_remove (self->priv->symbols, symbol); + if (g_slist_find (self->priv->symbols, symbol)) + { + self->priv->symbols = g_slist_remove (self->priv->symbols, symbol); + g_object_unref (symbol); + } } /** @@ -378,9 +381,12 @@ ld_symbol_category_remove_subcategory (LdSymbolCategory *self, g_return_if_fail (LD_IS_SYMBOL_CATEGORY (self)); g_return_if_fail (LD_IS_SYMBOL_CATEGORY (category)); - g_object_unref (category); - self->priv->subcategories - = g_slist_remove (self->priv->subcategories, category); + if (g_slist_find (self->priv->subcategories, category)) + { + self->priv->subcategories + = g_slist_remove (self->priv->subcategories, category); + g_object_unref (category); + } } /** |