commit 5bcdb56433d0ba2976f05946c6c5b6ffe3e84901 Author: Martin Pitt Date: Mon Oct 28 15:59:51 2013 +0100 release 3.11.1 NEWS | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 65b8f7bd77474e361c80905ec23de6dbde27970c Author: Simon Feltman Date: Sun Oct 27 22:09:27 2013 -0700 Fix toggleref safety problems by always enabling the GIL Call PyEval_InitThreads for the base gi module import. This forces the Python internals create the GIL and always support threading with the various thread state enter/exit funcs. This is needed since we cannot predict which GI repositories might accept Python callbacks and run them in non-Python threads or trigger toggle ref notifications in a thread other than main. https://bugzilla.gnome.org/show_bug.cgi?id=709223 gi/__init__.py | 2 -- gi/gimodule.c | 18 +++++++----------- gi/overrides/GLib.py | 8 ++------ 3 files changed, 9 insertions(+), 19 deletions(-) commit 57195c9c864bc25521bb3cb98286e6d6f0645652 Author: Simon Feltman Date: Sun Oct 27 16:02:13 2013 -0700 Add consistent GLib.MainLoop SIGINT cleanup Remove auto cleanup of SIGINT source handling by returning True from the signal callback. This gives the __del__ method consistent cleanup semantics regardless of whether or not a SIGINT occurred. https://bugzilla.gnome.org/show_bug.cgi?id=710978 gi/overrides/GLib.py | 4 ++++ 1 file changed, 4 insertions(+) commit 1c03ebba9598e7b6d5293889f46b015bfac3611c Author: Simon Feltman Date: Sun Oct 27 15:16:09 2013 -0700 tests: Fix source testing to handle critical with non-existing sources Silence new critical coming from g_source_remove on non-existing sources. This function still returns False, but we need to silence the new critical so the test suite doesn't fail. See bug 710724. https://bugzilla.gnome.org/show_bug.cgi?id=710978 tests/test_source.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit ac776da7e56b78a2fa422487f0ef0d8771bcb78f Author: Simon Feltman Date: Sun Jul 28 00:01:35 2013 -0700 docs: Add a keyword value of None for allow-none annotations Update documentation generator for allow-none arguments and user_data arguments to show a keyword value of None. Add skip for GDestroyNotify closure arguments. https://bugzilla.gnome.org/show_bug.cgi?id=640812 gi/docstring.py | 20 +++++++++++++++++--- tests/test_docstring.py | 10 ++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) commit e1bf9c069644ea0bff0c6a7efa72a285e122a414 Author: Simon Feltman Date: Sat Oct 19 19:03:12 2013 -0700 Remove overrides for supporting pre-3.10 GObject signal functions Remove GObject override code for supporting pre-3.10 signal functions which annotate the object argument as "gpointer". With PyGObject 3.11 having a dependency on GObject 3.10, clear the special case overrides out. gi/overrides/GObject.py | 76 ++++++------------------------------------------- 1 file changed, 9 insertions(+), 67 deletions(-) commit 0c308de528c402f67808b13760ca30d55d4c99d7 Author: Simon Feltman Date: Fri Oct 18 17:15:06 2013 -0700 Add threads_init back as a requirement for non-Python threaded repos Re-add a "threads_init" function to gi for explicit intialization of Python threading support. This was marked as deprecated in the previous cycle because using Python threads already initializes everything. However, we still need an explicit initalization when using repositories with non-Python threads which may interact with Python callbacks (GStreamer). https://bugzilla.gnome.org/show_bug.cgi?id=710447 gi/__init__.py | 2 ++ gi/gimodule.c | 10 ++++++++++ gi/overrides/GLib.py | 11 +++++++---- 3 files changed, 19 insertions(+), 4 deletions(-) commit a2fa531b4dee73c193cac92fa3e870808688b5d7 Author: Simon Feltman Date: Mon Oct 14 20:38:13 2013 -0700 Add dir method to GObject props accessor Remove special case __members__ attribute from the props accessor objects getattr method. This has been deprecated since Python 2.3 and removed in Python 3. Replace this with a __dir__ method making use of the old members list building code. Additionally fix error where the GObjectClass was being unref'd too many times when using dir(Object.props), causing a GLib critical. https://bugzilla.gnome.org/show_bug.cgi?id=705754 gi/_gobject/pygobject.c | 29 +++++++++++++++++++++-------- tests/test_gi.py | 14 ++++++++++++++ 2 files changed, 35 insertions(+), 8 deletions(-) commit 799989ada2f6b1d729f078f204445651c808a2c7 Author: Simon Feltman Date: Fri May 3 04:37:13 2013 -0700 Remove PyGObjectWeakRef now that g_binding_unbind exists Remove the static code for managing GBinding weak references now that GLib has a method (unbind) for clearing out bindings. https://bugzilla.gnome.org/show_bug.cgi?id=699571 gi/_gobject/pygobject.c | 59 +------------------------------------------------ gi/overrides/GObject.py | 19 ++++++++++++++++ tests/test_gobject.py | 41 ++++++++++++++++++++-------------- 3 files changed, 44 insertions(+), 75 deletions(-) commit fe217e0afbd63f05285e59628533f351896377d9 Author: Simon Feltman Date: Wed Oct 9 00:34:37 2013 -0700 Fix GArray, GList, GSList, and GHashTable marshaling leaks Remove calling of cleanup code for transfer-everything modes by ensuring cleanup_data is set to NULL in from_py marshalers. Use array and hash table ref/unref functions for container transfer mode to ensure we have a valid container ref after invoke and during from_py cleanup of contents. Rework restrictions with to_py marshaling cleanup so we always unref the container for transfer-everything and transfer-container modes. https://bugzilla.gnome.org/show_bug.cgi?id=693402 gi/pygi-marshal-cleanup.c | 54 +++++++++++---------------------- gi/pygi-marshal-from-py.c | 77 ++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 84 insertions(+), 47 deletions(-) commit 7407367f424595c2780a2d6a47d936ad0bd91735 Author: Simon Feltman Date: Mon Oct 7 14:11:39 2013 -0700 Add cleanup_data argument used for Python to C marshaler cleanup Add a new output argument to all from_py marshalers which is used for keeping track of marshaling data that later needs cleanup. Previously most marshalers would rely on the GIArgument->v_pointer as the means for data cleanup. However, this pointer would get clobbered in the case of bi-directional arguments (inout) and the memory lost. Use the new cleanup_data for storing temporarily wrapped C arrays so we don't need to re-calculate the length argument during cleanup. Additionally delay the from_py marshaling cleanup function until after _invoke_marshal_out_args is called. This gives inout arguments which don't modify the pointer sufficient time to exist until they marshaled back to Python (gi_marshalling_tests_gvalue_inout). https://bugzilla.gnome.org/show_bug.cgi?id=693402 gi/pygi-argument.c | 4 +- gi/pygi-cache.h | 3 +- gi/pygi-invoke-state-struct.h | 7 +- gi/pygi-invoke.c | 20 +++--- gi/pygi-marshal-cleanup.c | 43 +++++------- gi/pygi-marshal-from-py.c | 160 ++++++++++++++++++++++++++++-------------- gi/pygi-marshal-from-py.h | 45 ++++++++---- 7 files changed, 177 insertions(+), 105 deletions(-) commit 9456e83233a927f1f01c6ffcb1f07c62b491a1df Author: Simon Feltman Date: Wed Aug 7 12:08:15 2013 -0700 Add support for variable user data arguments Support a variable number of user data arguments for all callback connection function where the user data is the last explicit argument. This adds convience as well as consistency with the rest of PyGObject. Cleanup overrides for GLib.idle_add, timeout_add, timeout_add_seconds, io_add_watch, and child_watch_add which manually implemented this feature. https://bugzilla.gnome.org/show_bug.cgi?id=640812 gi/overrides/GLib.py | 75 +++++++++++++++-------------------------------- gi/pygi-cache.c | 14 +++++++++ gi/pygi-cache.h | 3 ++ gi/pygi-closure.c | 37 +++++++++++++++-------- gi/pygi-invoke.c | 71 +++++++++++++++++++++++++++++++------------- gi/pygi-marshal-from-py.c | 5 ++++ tests/test_everything.py | 32 ++++++++++++++++++++ tests/test_glib.py | 21 +++++++++++++ tests/test_subprocess.py | 8 ++--- 9 files changed, 177 insertions(+), 89 deletions(-) commit ba4a0a65bf9ec44c3b9449f63d63035bff75d8df Author: Martin Pitt Date: Mon Oct 14 12:57:04 2013 +0200 Bump glib and g-i dependencies to latest stable. glib 2.38 and g-i 1.38 are from stable GNOME 3.10 which we now assume as minimal version. Drop @unittest.skipUnless tags from tests which didn't work with g-i 1.36. README | 3 ++- configure.ac | 6 +++--- tests/test_gi.py | 2 -- 3 files changed, 5 insertions(+), 6 deletions(-) commit 2a5ad2af6bc91b187a2f07fc8d001ec7ad618adf