summaryrefslogtreecommitdiff
path: root/giscanner/giscannermodule.c
diff options
context:
space:
mode:
authorSimon Feltman <sfeltman@src.gnome.org>2013-12-17 22:56:22 -0800
committerSimon Feltman <sfeltman@src.gnome.org>2014-01-02 14:34:42 -0800
commite6249ad007adeec2010ef8a8f8f7907b4d60fdfd (patch)
tree6f264ad769aefcd8250bd64ca3582cdd2ba96496 /giscanner/giscannermodule.c
parent4a64ab0b8e3e6cf0ebb4f34dd9276e964e1f303c (diff)
downloadgobject-introspection-e6249ad007adeec2010ef8a8f8f7907b4d60fdfd.tar.gz
scanner: Fix get_symbols/comments to maintain the scanner lists
Use g_slist_copy prior to returning the lists run through g_slist_reverse. This preserves the source scanners internally held lists where previously they would only point to a single element after a call, leaking memory and breaking subsequent calls. Note the functions as (transfer container) and use g_slist_free after calls in the Python bindings. Add new unittest file: test_sourcescanner.py for isolated unittesting of the SourceScanner. https://bugzilla.gnome.org/show_bug.cgi?id=581525
Diffstat (limited to 'giscanner/giscannermodule.c')
-rw-r--r--giscanner/giscannermodule.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/giscanner/giscannermodule.c b/giscanner/giscannermodule.c
index 925b3e0a..b9512275 100644
--- a/giscanner/giscannermodule.c
+++ b/giscanner/giscannermodule.c
@@ -575,6 +575,7 @@ pygi_source_scanner_get_symbols (PyGISourceScanner *self)
PyList_SetItem (list, i++, item);
}
+ g_slist_free (symbols);
Py_INCREF (list);
return list;
}
@@ -598,6 +599,7 @@ pygi_source_scanner_get_comments (PyGISourceScanner *self)
PyList_SetItem (list, i++, item);
}
+ g_slist_free (comments);
Py_INCREF (list);
return list;
}