• Simon Feltman's avatar
    Fix reference leaks with transient floating objects · 5efe2e5c
    Simon Feltman authored
    Unify and refactor caller and callee GObject argument marshalers.
    Combine code from the large switch statement used to marshal
    arguments to and from vfuncs/closures with the marshalers used
    for direct calls to gi functions. This fixes a reference leak
    when marshalling GObjects to Python with transfer=full due to
    the diverging code paths.
    Replace ability in gobject_new_full to optionally sink objects
    with ability to optionaly "steal" objects. This fits the premise
    that binding layers should always sink objects initially. The
    steal argument is then used for marshalling arguments which are
    transfer=full.
    Add hacks and comments to work around GTK+ bugs 693393 and 693400.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=687522
    5efe2e5c
pygi-marshal-to-py.c 29.3 KB