1. 14 Oct, 2013 3 commits
  2. 11 Oct, 2013 1 commit
    • Simon Feltman's avatar
      Use qdata for wrapper retrieval in toggle reference notifications · 27e9f6ed
      Simon Feltman authored
      Replace usage of user data holding PyGObject wrappers in toggle ref
      notifications with GObject qdata retrieval. This fixes thread safety issues
      where a toggle notify may be called from another thread during the PyGObject
      wrappers dealloc. In this case the toggle notify is blocked because the GIL
      is held in dealloc, and when it continues, the user data would be holding an
      invalid PyGObject wrapper. Using qdata solves this by ensuring the wrapper
      retrieval is done within the safety of the GIL and may turn up as NULL.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=709223
      27e9f6ed
  3. 10 Oct, 2013 1 commit
  4. 09 Oct, 2013 1 commit
  5. 08 Oct, 2013 3 commits
    • Simon Feltman's avatar
      Fix to Python marshaling leaks for arrays holding GVariants · 31263ac1
      Simon Feltman authored
      Add early check for array items holding pointers and simply assign the
      pointer to GIArgument.v_pointer prior giving it to the per-item marshaler.
      This simplifies marshaling and fixes leaks regarding arrays of GVariants by
      removing the unneeded g_variant_ref_sink (variants are always pointers).
      Conditionalize the use of g_variant_ref_sink based on transfer mode in the
      per-item marshaler. This fixes a reference leak where we are given ownership
      of the variant (transfer full) but added a new ref anyway.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=693402
      31263ac1
    • Simon Feltman's avatar
      Cleanup per-item array marshaling code for flat arrays · c9580ce1
      Simon Feltman authored
      Add an early per-item check which tests if the item being marshaled is a
      pointer and simply copies the pointer into the array. This takes care of the
      GdkAtom and GVariant special cases because these items are always reported
      as pointers.
      Fix error condition cleanup code when an item fails marshaling in the middle
      of an array.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=693402
      c9580ce1
    • Simon Feltman's avatar
      Fix GValue array marshaling leaks and crash fallout · 4623caa7
      Simon Feltman authored
      * Decrement references for results of PySequence_GetItem. There were a few
      places we were not decrementing the Python reference, leaking the value.
      * Add tracking of Python arguments with recursive marshaling cleanup. This
      allows arrays of GValues which have been coerced from Python types to be
      properly free'd (also fixes bug 703662).
      * Use g_variant_ref for variant arguments marked as transfer everything.
      This fixes double free's caused by the decrementing of PySequence_GetItem
      results.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=693402
      4623caa7
  6. 07 Oct, 2013 11 commits
  7. 05 Oct, 2013 2 commits
  8. 04 Oct, 2013 3 commits
  9. 26 Sep, 2013 12 commits
  10. 23 Sep, 2013 3 commits