[gobject-introspection] repository: Squash memory leak in _get_func and fix up style
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection] repository: Squash memory leak in _get_func and fix up style
- Date: Fri, 6 Jan 2012 20:01:04 +0000 (UTC)
commit 4c9424e18d71237f438a99bc5f2d45ae7de60b78
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Dec 12 16:14:57 2011 -0500
repository: Squash memory leak in _get_func and fix up style
girepository/giobjectinfo.c | 36 +++++++++++++++++++-----------------
1 files changed, 19 insertions(+), 17 deletions(-)
---
diff --git a/girepository/giobjectinfo.c b/girepository/giobjectinfo.c
index fbf5d8a..4aca8bd 100644
--- a/girepository/giobjectinfo.c
+++ b/girepository/giobjectinfo.c
@@ -756,28 +756,30 @@ _get_func(GIObjectInfo *info,
const char* symbol;
GSList *parents = NULL, *l;
GIObjectInfo *parent_info;
+ gpointer func = NULL;
parent_info = info;
- while (parent_info != NULL) {
- parents = g_slist_prepend(parents, parent_info);
- parent_info = g_object_info_get_parent(parent_info);
- }
-
- for (l = parents; l; l = l->next) {
- GIObjectInfoRefFunction func;
- parent_info = l->data;
- symbol = getter(parent_info);
- if (symbol == NULL)
- continue;
- if (g_typelib_symbol (((GIRealInfo *)parent_info)->typelib, symbol, (void**) &func)) {
- g_slist_free(parents);
- return func;
+ while (parent_info != NULL)
+ {
+ parents = g_slist_prepend (parents, parent_info);
+ parent_info = g_object_info_get_parent (parent_info);
}
- }
- g_slist_free(parents);
- return NULL;
+ for (l = parents; l; l = l->next)
+ {
+ GIObjectInfoRefFunction func;
+ parent_info = l->data;
+ symbol = getter (parent_info);
+ if (symbol == NULL)
+ continue;
+
+ g_typelib_symbol (((GIRealInfo *)parent_info)->typelib, symbol, (gpointer*) &func);
+ if (func)
+ break;
+ }
+ g_slist_free_full (parents, (GDestroyNotify) g_base_info_unref);
+ return func;
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]