commit bd6da84a4aec74e47f5d70e8ed18695c37e746c6 Author: Martin Pitt Date: Mon Jan 14 17:30:48 2013 +0100 release 3.7.4 NEWS | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit c90ef9dfac7dd51ec82c99c3605915996bea0f73 Author: Simonas Kazlauskas Date: Tue Dec 4 15:45:00 2012 +0200 Allow setting values through GtkTreeModelFilter Previously, trying to set a value through filter throwed an exception that the model has no set_value() method. You had to first retrieve the deepest child model and set value to it. https://bugzilla.gnome.org/show_bug.cgi?id=689624 gi/overrides/Gtk.py | 5 +++++ tests/test_overrides_gtk.py | 11 +++++++++++ 2 files changed, 16 insertions(+) commit b092630efc691a6f7ae94ae896193254f5a961a6 Author: Martin Pitt Date: Mon Jan 14 12:37:18 2013 +0100 tests: Add (failing) test case for GParamSpec arguments This reproduces https://bugzilla.gnome.org/show_bug.cgi?id=682355 tests/test_gi.py | 9 +++++++++ 1 file changed, 9 insertions(+) commit 52d84b5da7f9fd4f65faea4e6fe3d250f937a208 Author: Martin Pitt Date: Mon Jan 14 12:20:27 2013 +0100 tests: Skip struct string member tests with g-i 1.34 We still support building against gobject-introspection 1.34, so skip tests which do not work with that version yet. tests/test_gi.py | 8 ++++++++ 1 file changed, 8 insertions(+) commit f9429192cb1002725a11a75a7b8f9300375b9caf Author: Martin Pitt Date: Mon Jan 14 12:15:27 2013 +0100 Support GParamSpec signal arguments from Python In pyg_value_from_pyobject(), recognize both the real GI GObject.ParamSpec type as well as the statically wrapped _gobject.GParamSpec type. This fixes marshalling GObject.ParamSpec signal/vfunc arguments. https://bugzilla.gnome.org/show_bug.cgi?id=683099 gi/_gobject/pygtype.c | 6 +++++- tests/test_signal.py | 12 ++++++++++++ tests/testhelpermodule.c | 13 +++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) commit 99f72925c7de76611f7592bce9d8217a9ff46809 Author: Martin Pitt Date: Mon Jan 14 11:48:11 2013 +0100 pygobject_emit(): Fix cleanup on error Dot not try to unset GValues which have not been initialized yet, when type conversion fails for a parameter. gi/_gobject/pygobject.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit acef1d3266d11b2465d61185a55526df879a5c62 Author: Simon Feltman Date: Mon Dec 31 19:01:57 2012 -0800 Add signal emission methods to TreeModel which coerce the path argument Override TreeModel row_changed, row_inserted, row_has_child_toggled, row_deleted, and rows_reordered methods to accept python iterables as the path parameter. This is for compatibility with pygtk and consistency with the rest of the TreeModel and TreePath overrides. https://bugzilla.gnome.org/show_bug.cgi?id=682933 gi/overrides/Gtk.py | 31 ++++++++++++++++++++++++++++--- tests/test_overrides_gtk.py | 27 +++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 3 deletions(-) commit 9cfba517e1a6dced5e66786b28ed5e101b7b4a29 Author: Martin Pitt Date: Mon Jan 14 10:36:36 2013 +0100 Simplify overrides and tests using the new GObject.Value override The previous commit added support for constructing a GObject.Value with a given GType and Python object conversion. Use this to simplify the Gtk override and the tests that construct GValues. See https://bugzilla.gnome.org/show_bug.cgi?id=677473 gi/overrides/Gtk.py | 88 +++------------------------------------------ tests/test_gi.py | 26 +++++--------- tests/test_overrides_gtk.py | 2 +- tests/test_signal.py | 12 ++----- 4 files changed, 17 insertions(+), 111 deletions(-) commit f62b98398177991bfdbe0b6753342e79e6cf170a Author: Bastian Winkler Date: Mon Jan 14 10:26:08 2013 +0100 Add override for GValue Override GValue with a custom constructor and set_value()/get_value() methods. This allows you to call >>> GObject.Value(GObject.TYPE_FLOAT, 42.23) instead of >>> value = GObject.Value() >>> value.init(GObject.TYPE_FLOAT) >>> value.set_float(42.23) This is especially useful for overrides that need to convert a Python value to a expected type like G_TYPE_FLOAT. https://bugzilla.gnome.org/show_bug.cgi?id=677473 gi/overrides/GObject.py | 127 +++++++++++++++++++++++++++++++++++++++++++++++- tests/test_gobject.py | 47 +++++++++++++++++- 2 files changed, 172 insertions(+), 2 deletions(-) commit dc3d21173b75232f7ea0b9913f7309486456a69d Author: Mike Gorse Date: Thu Jan 10 15:48:30 2013 -0600 Mark caller-allocated boxed structures as having a slice allocated When a C function takes a pointer and fills it with a boxed structure (ie, gtk_tree_store_insert_with_values), pygi should deallocate the slice when the box is no longer being used. https://bugzilla.gnome.org/show_bug.cgi?id=699501 gi/pygi-marshal-to-py.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0c496d230fee7fd3ada90ee9af10e0bc1e29ee12 Author: Olivier Crête Date: Fri Sep 14 21:31:32 2012 -0400 pygi-property: Support boxed GSList/GList types Note that this does not yet work for construct properties. Co-Authored-By: Martin Pitt https://bugzilla.gnome.org/show_bug.cgi?id=684059 gi/pygi-property.c | 10 ++++++++-- tests/test_gi.py | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) commit 074f10d815453e58f4bee2f440c5db799add3876 Author: Martin Pitt Date: Mon Jan 14 07:48:31 2013 +0100 test_gio: Fix for Python 2 Python 2 does not yet take an "encoding" argument for str(), while Python 3 requires it. Use a less fancy static test string instead. tests/test_gio.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 734979d0c8317201148a7e94a323225fba2d1635 Author: Martin Pitt Date: Mon Jan 14 07:40:10 2013 +0100 tests: Add missing backwards compat methods for Python 2.6 Define skipIf(), assertLess(), and assertLessEqual() for running the tests with Python 2.6. https://bugzilla.gnome.org/show_bug.cgi?id=691646 tests/runtests.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit dc0dafd1f6ca3ebbf04210768a45587387e44551 Author: Martin Pitt Date: Mon Jan 14 07:34:46 2013 +0100 tests: Stop using assertSequenceEqual() assertSequenceEqual() does not yet exist in Python 2.6, and is not necessary either as assertEqual() on sequences automatically does list comparison. Part of https://bugzilla.gnome.org/show_bug.cgi?id=691646 tests/test_gtype.py | 6 ++---- tests/test_signal.py | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) commit 0a5587b6a56d417a6703e342f153596f08cd5889 Author: Simon Feltman Date: Sun Jan 13 18:19:51 2013 -0800 Allow setting TreeModel values to None Change TreeModel.set_value to use an empty but initialized GValue when None is used as the value argument. This allows clearing of cell data which was not accessible due to auto-coercion. https://bugzilla.gnome.org/show_bug.cgi?id=684094 gi/overrides/Gtk.py | 11 ++++++++--- tests/test_overrides_gtk.py | 8 ++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) commit 5ae129da436793478750f0dc9427a174a980e10b Author: Mike Gorse Date: Thu Jan 10 16:42:17 2013 -0600 Set clean-up handler for marshalled arrays Arrays did not have a cleanup handler set in some cases, resulting in a leak. https://bugzilla.gnome.org/show_bug.cgi?id=691509 gi/pygi-cache.c | 1 + 1 file changed, 1 insertion(+) commit 58bd307c57d542a8f69867dea2d0a0eb51230c7b Author: Vadim Rutkovsky Date: Fri Jan 11 15:41:27 2013 +0100 Support setting string fields in structs Co-Authored-By: Martin Pitt https://bugzilla.gnome.org/show_bug.cgi?id=678401 gi/pygi-info.c | 3 ++- tests/test_gi.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) commit f2bcaa43c1158040a8c2cbc3a2ba5070d126a410 Author: Martin Pitt Date: Fri Jan 11 14:58:44 2013 +0100 Re-enable test_gi.TestPropertiesObject.test_char test The gobject-introspection bug got fixed: https://bugzilla.gnome.org/show_bug.cgi?id=691524 tests/test_gi.py | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 9a8c49087cf400e01c1f78241fa4d74b4d15f54e Author: Martin Pitt Date: Fri Jan 11 09:46:56 2013 +0100 tests: Re-enable test_callback_scope_call_array() check Drop the expected failure from test_callback_scope_call_array() and just add the explicit array length arguments. While it would look cleaner to not pass them, it is probably not worth breaking the API for this. tests/test_everything.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 609636424b5f9b659e99a4bb53a48c165187c430 Author: Martin Pitt Date: Fri Jan 11 09:13:36 2013 +0100 Permit plain integers for "gchar" values Similar to guchar/guint8, allow plain integers (withing correct boundaries) as values for gchar/gint8 types. This is covered by the test_gi.TestPropertiesObject.test_char test when removing the "expected failure" flag. gi/_gobject/pygtype.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit a558d3d3a9274aeccfc54705bf5effdf71dee06b Author: Martin Pitt Date: Fri Jan 11 09:09:41 2013 +0100 Allow single byte values for int8 types When fixing gobject-introspection to consider "gchar" as signed (see https://bugzilla.gnome.org/show_bug.cgi?id=691524), we must also permit a single-element "bytes" array as a valid value for int8, not just for uint8. This is caught by the test_overrides_gtk.TestTreeModel.test_tree_store test. gi/pygi-argument.c | 4 ++-- gi/pygi-marshal-from-py.c | 34 +++++++++++++++++++++------------- 2 files changed, 23 insertions(+), 15 deletions(-) commit aa7f6cd12fe403acb2cffc7890724af7abb9b990 Author: Mike Gorse Date: Thu Jan 10 14:11:56 2013 -0600 Fix invalid memory access handling errors when registering an enum type Don't free the name until we are done with it. gi/gimodule.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ecd235959317d39b6d598662c00829e0ec717b17 Author: Martin Pitt Date: Thu Jan 10 16:42:46 2013 +0100 Fix (out) arguments in callbacks Do not ignore the first argument in _pygi_closure_set_out_arguments(). Presumably that has been done to skip over "self", but callbacks are not required to have a self argument. As self is never (out), we can safely include it in the loop. gi/pygi-closure.c | 2 +- tests/test_gi.py | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) commit d8e241e24a816691acbd592775b73defd9aa4f44 Author: Martin Pitt Date: Thu Jan 10 15:14:05 2013 +0100 Fix C to Python marshalling of struct pointer arrays Do not treat an array of pointers to values like an array of values on marshalling from C. This makes the test_array_boxed_struct_return() test case work. gi/pygi-marshal-to-py.c | 5 +++-- tests/test_gi.py | 2 -- 2 files changed, 3 insertions(+), 4 deletions(-) commit 60544b02f6f98c0b212625ae83b94a4c6debddeb Author: Simonas Kazlauskas Date: Tue Jan 8 23:22:54 2013 +0200 Add tests for GFile Most notably this commit contains a test for Gio.File.replace_contents_async(), which currently fails. Disable the tests for now as it breaks the other tests. https://bugzilla.gnome.org/show_bug.cgi?id=690525 tests/test_gio.py | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) commit 118c5eaad045580455515876ba73b9537a8468b4 Author: Martin Pitt Date: Thu Jan 10 13:56:11 2013 +0100 Rename test_overrides_gio.py to test_gio.py As we want to add more tests for non-overridden API. tests/Makefile.am | 2 +- tests/test_gio.py | 121 ++++++++++++++++++++++++++++++++++++++++++++ tests/test_overrides_gio.py | 121 -------------------------------------------- 3 files changed, 122 insertions(+), 122 deletions(-) commit 8117e6bce73581e89211371708ff7d5de7d870d4 Author: Martin Pitt Date: Thu Jan 10 12:13:16 2013 +0100 Don't let Property.setter() method names define property names Defining property names in install_properties() is too late when using @propname.setter decorators; their method names don't define a property name, nor are they even required to be a valid property identifier. So change the logic to already fix the property name when using a setter decorator and use that instead of the member name in install_properties(). https://bugzilla.gnome.org/show_bug.cgi?id=688971 gi/_gobject/propertyhelper.py | 29 ++++++++++++++++++++++------- tests/test_properties.py | 18 ++++++++++++++++++ 2 files changed, 40 insertions(+), 7 deletions(-) commit c0bd060521cc1b481995648dbe286b7e2f9ecd80 Author: Martin Pitt Date: Wed Jan 9 10:39:36 2013 +0100 tests: Force UTF-8 file name encoding The test_gi.TestFilename tests fail if the environment specifies a non-UTF8 file name encoding. Force it to "UTF-8" for the tests. https://bugzilla.gnome.org/show_bug.cgi?id=691355 tests/runtests.py | 1 + 1 file changed, 1 insertion(+) commit c02a00ae9599a661076630b21b7e24e78fb88c29 Author: Martin Pitt Date: Tue Jan 8 16:56:40 2013 +0100 Use g-i stack allocation API Where possible, i. e. when not keeping references across functions, use the _load_() methods instead of the _get_() ones from gobject-introspection, which is faster and less prone to memory leaks: g_callable_info_get_arg () → g_callable_info_load_arg () g_callable_info_get_return_type() → g_callable_info_load_return_type () g_arg_info_get_type() → g_arg_info_load_type () https://bugzilla.gnome.org/show_bug.cgi?id=615982 gi/pygi-argument.c | 16 ++++------ gi/pygi-closure.c | 88 ++++++++++++++++++++++++------------------------------ 2 files changed, 45 insertions(+), 59 deletions(-) commit 23d1f14f553069740465c82eaa937b877c41e0cb Author: Ray Strode Date: Wed Dec 19 13:04:32 2012 -0500 pyg_value_from_pyobject: support GArray This commit adds support for marshalling a python list (or other sequence) returned from signal handlers to GArray, if necessary. This parallels the implementation written to marshal to (the now deprecated) GValueArray. This fixes a crash in rhythmbox as seen downstream here: https://bugzilla.redhat.com/show_bug.cgi?id=872851 https://bugzilla.gnome.org/show_bug.cgi?id=690514 Co-Authored-By: Martin Pitt gi/_gobject/pygtype.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/test_everything.py | 22 ++++++++++++++++++ 2 files changed, 82 insertions(+) commit 2089dbb117bae769b0303411c2630b6f86dc7d2d Author: Marko Lindqvist Date: Fri Jan 4 07:01:29 2013 +0100 Fix obsolete automake macros https://bugzilla.gnome.org/show_bug.cgi?id=691101 configure.ac | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6c02ab0ad720780f176192fdc6372aaa178812fd Author: Simon Feltman Date: Mon Dec 31 02:53:07 2012 -0800 Change dynamic enum and flag gtype creation to use namespaced naming Use the combination of g_base_info_get_namespace and g_base_info_get_name as the name for registering enum and flag types with glib through g_enum_register_static and g_flags_register_static. This avoids conflicts with types like GLib.SeekType and Gst.SeekType. Add better exceptions and memory cleanup for invalid registration problems. https://bugzilla.gnome.org/show_bug.cgi?id=690455 gi/_gobject/pygenum.c | 6 ++-- gi/gimodule.c | 78 ++++++++++++++++++++++++++++++++++++++++++++------- tests/test_gi.py | 35 +++++++++++++++++++++++ 3 files changed, 106 insertions(+), 13 deletions(-) commit 692c80e11a05e2fb0515580acb22fd6fe65cede1 Author: Dan Horák Date: Fri Dec 28 22:12:32 2012 +0100 Fix test for GBytes.compare() The result of the compare method is defined as equal, less than or greater than zero and the test must match to that. The underlaying memcmp() function can return other values than -1, 0 and 1. For example on architectures where it is implemented directly via a CPU instruction like on s390(x) where I can see -2 as a result instead of the "expected" -1. https://bugzilla.gnome.org/show_bug.cgi?id=690837 tests/test_gi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 948dbcb223249a08f4398d4ad8861e92e3de0dfa Author: Jonathan Ballet Date: Thu Dec 27 16:04:51 2012 +0100 Fix Gtk.UIManager.add_ui_from_string() override for non-ASCII chars The length argument is the size of the buffer in bytes, not in characters. https://bugzilla.gnome.org/show_bug.cgi?id=690329 Co-Authored-By: Martin Pitt gi/overrides/Gtk.py | 2 +- tests/test_overrides_gtk.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) commit 53bc12a87da824cbfb006a4fd65731edec12ecc7 Author: Mike Gorse Date: Wed Dec 19 20:51:03 2012 -0500 Don't dup strings before passing them to type registration functions Strings passed to g_enum_register_static and g_flags_register_static are eventually passed to g_quark_from_string, which dups the string passed to it if needed and does not take ownership of it, so passing in a dynamically-allocated string without freeing it results in a small leak. https://bugzilla.gnome.org/show_bug.cgi?id=690532 gi/gimodule.c | 2 -- 1 file changed, 2 deletions(-) commit 9454c01f2b1b82d43eea0f72fe9a28ef50065fc9 Author: Carlos Garnacho Date: Tue Dec 18 22:47:09 2012 +0100 Fix marshalling of arrays of boxed struct values This fixes methods like gtk_selection_set_with_data(). In such cases data is passed as an array of struct pointers, so it must be converted to an array of structs. https://bugzilla.gnome.org/show_bug.cgi?id=656312 Co-Authored-By: Martin Pitt gi/pygi-marshal-from-py.c | 6 ++++++ tests/test_gi.py | 12 ++++++++++++ 2 files changed, 18 insertions(+) commit 231d5a7cfc73518b4e2b0c926d4c1ce9a804797e Author: Simon Feltman Date: Tue Dec 18 02:03:41 2012 -0800 Add reference counting tests for Object.bind_property Add tests which ensure transform callbacks and user_data are propertly ref-counted. https://bugzilla.gnome.org/show_bug.cgi?id=690397 tests/test_gobject.py | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) commit c29e11812d176b1f057074c9bab22c9614ae4f8c Author: Martin Pitt Date: Tue Dec 18 11:43:04 2012 +0100 testhelpermodule.c: Do not unref called method In _wrap_test_gerror_exception(), do not unref the method arguments. This causes a crash when being run with the stricter refcounting/memory checks with debug-enabled Python builds. tests/testhelpermodule.c | 1 - 1 file changed, 1 deletion(-) commit ff0d9106bcd02a6b2c67cc3722481218c599a9f4 Author: Martin Pitt Date: Mon Dec 17 23:20:50 2012 +0100 configure.ac: post-release bump to 3.7.4 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)