commit 42970db5949c615078c38a039da4745eeb194ac1
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Fri Jun 10 14:01:32 2011 +0200

    closure: avoid double free crash

 gi/pygi-closure.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

commit 78366697d8f7fc53f20d9f52f9f39552c5e99bd1
Author: John (J5) Palmieri <johnp@redhat.com>
Date:   Fri Jun 10 16:48:28 2011 -0400

    [gi] backport of "GVariant has a GType" fe386a

    * backport the switch to using GIInterfaceInfo instead of GITypeInfo
      for foreign types to support this patch - 01596a

 gi/pygi-argument.c         |   10 +++++-----
 gi/pygi-foreign-cairo.c    |   18 ++++++++++--------
 gi/pygi-foreign-gvariant.c |   15 +++++++--------
 gi/pygi-foreign-gvariant.h |   14 ++++++--------
 gi/pygi-foreign.c          |   21 +++++++++------------
 gi/pygi-foreign.h          |   16 ++++++++--------
 gi/pygi-invoke.c           |   26 ++++++++++++++++----------
 7 files changed, 61 insertions(+), 59 deletions(-)

commit 0c348da3d974f63629c44e75067b8056dacc60d3
Author: John (J5) Palmieri <johnp@redhat.com>
Date:   Fri Jun 10 16:46:20 2011 -0400

    [gi] fixes to backport commit 6b5a65 - in older glib GVariants are
    still structs

 gi/gimodule.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

commit 6b5a656a3b77438c9bbb897c65343634b981c0e5
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Mon Jun 6 19:05:07 2011 +0200

    GVariantType is a boxed struct

    https://bugzilla.gnome.org/show_bug.cgi?id=647509

 gi/gimodule.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 3f6bba909486d0ad1a27592fcf09c7ac8744fded
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Mon Jun 6 17:38:21 2011 +0200

    Use _gi.Struct to wrap fundamentals

    https://bugzilla.gnome.org/show_bug.cgi?id=647509

 gi/module.py |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit b7f5ce021bf16a422dc410b3ff44303e0757dc6e
Author: Jason Siefken <siefkenj@gmail.com>
Date:   Fri Jun 3 23:11:17 2011 -0700

    Added __eq__ method for Gdk.Color and Gdk.RGBA

    Call Gdk.Color.equal and Gdk.RGBA.equal when
    == equality testing is used.

 gi/overrides/Gdk.py     |    6 ++++++
 tests/test_overrides.py |    4 ++++
 2 files changed, 10 insertions(+), 0 deletions(-)

commit c016c27f545f398f1b57cf31f37392c97d2b5e50
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Jun 8 19:21:23 2011 +0200

    Remove useless import

 tests/test_everything.py |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

commit 1598047c0ddd6a1d04d41e59dd182f3c0524f3c4
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Jun 8 19:18:23 2011 +0200

    Revert "[gi] Removed hack to avoid using GLib.Variant.new_variant."

    This reverts commit dfe95b9ec598b57deaabd98ab488ab054a44ec09.

 gi/overrides/GLib.py |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

commit ae9e098c14de3d2364c8b16c862aa77570c06a4a
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Jun 8 19:13:48 2011 +0200

    closure: Check the out arg is not null. Fixes bug #651812

 gi/pygi-closure.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

commit eca590a3ff6bbfb78eef7b88d36cee59eb51b1d0
Author: Daniel Drake <dsd@laptop.org>
Date:   Fri Jun 3 16:59:15 2011 +0100

    Fix GC-related crash during PyGObject deallocation

    Python-2.7.1's GC source has the following comment:

            /* Python's cyclic gc should never see an incoming refcount
             * of 0:  if something decref'ed to 0, it should have been
             * deallocated immediately at that time.
             * Possible cause (if the assert triggers):  a tp_dealloc
             * routine left a gc-aware object tracked during its teardown
             * phase, and did something-- or allowed something to
             happen --
             * that called back into Python.  gc can trigger then, and may
             * see the still-tracked dying object.  Before this assert
             * was added, such mistakes went on to allow gc to try to
             * delete the object again.  In a debug build, that caused
             * a mysterious segfault, when _Py_ForgetReference tried
             * to remove the object from the doubly-linked list of all
             * objects a second time.  In a release build, an actual
             * double deallocation occurred, which leads to corruption
             * of the allocator's internal bookkeeping pointers.  That's
             * so serious that maybe this should be a release-build
             * check instead of an assert?
             */

    As shown in a backtrace at
    https://bugzilla.redhat.com/show_bug.cgi?id=640972 , pygobject
    is making
    this exact mistake. Before untracking its object, pygobject_dealloc
    calls PyObject_ClearWeakRefs() which can call back into python, create
    new allocations, and trigger the GC.

    This is causing Sugar (based on pygobject2 + pygtk2 static bindings)
    to
    crash on a regular basis while interacting with widgets or launching
    applications.

    Fix this by untracking the object early. Also fix the same issue
    spotted
    in the GSource wrapper.

    Thanks to Bernie Innocenti for initial diagnosis.

 glib/pygsource.c    |    6 ++++--
 gobject/pygobject.c |    8 +++++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

commit ad96a3f1d187a640ec0a463b766fd5e027f3c16a
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Mon May 2 15:49:52 2011 +0200

    Fix symbol names to be locale independent

    We currently use upper() to present enum values, which are usually
    defined in
    lower case in the typelib, in upper cases. However, upper() is locale
    dependent, so that e. g. in tr_TR.UTF-8, "invalid" becomes "iNVALiD"
    because Turkish has some extra variants of "i".

    Use a local ASCII-only translate() call instead to avoid this. Thanks
    to Nils
    Philippsen for the idea!

    This also adds a test locale "te_ST@nouppera" which defines
    toupper('a') == 'a'.
    Run the Enum tests under this locale to reproduce the bug and verify
    the fix.

    https://bugzilla.gnome.org/show_bug.cgi?id=649165

 gi/module.py         |    9 ++++++++-
 tests/te_ST@nouppera |   50
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_gi.py     |   30 ++++++++++++++++++++++++++++++
 3 files changed, 88 insertions(+), 1 deletions(-)

commit 90530b52f6eaa30bb704e413c01bb94ee511a0bb
Author: Sebastian Pölsterl <sebp@k-d-w.org>
Date:   Mon Apr 18 18:36:25 2011 +0200

    Updated DOAP file

 pygobject.doap |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

commit 996e5676a00e8d8fc55ef7400d15ccf5a4d904eb
Author: Sebastian Pölsterl <sebp@k-d-w.org>
Date:   Mon Apr 18 18:16:42 2011 +0200

    Post release version bump to 2.28.5

 configure.ac |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)