After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 699435 - [meta] Fix void pointer marshaling
[meta] Fix void pointer marshaling
Status: RESOLVED FIXED
Product: pygobject
Classification: Bindings
Component: introspection
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Nobody's working on this now (help wanted and appreciated)
Python bindings maintainers
Depends on: 633927 683599 688081 694233 699356
Blocks:
 
 
Reported: 2013-05-02 02:08 UTC by Simon Feltman
Modified: 2013-09-26 02:09 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Simon Feltman 2013-05-02 02:08:18 UTC
Tracking ticket related to the problems with marshaling void pointers which don't have GI convention and cannot be managed properly. Generally void pointer arguments and properties have made use of raw PyObject pointers. This has caused problems on a number of occasions, primarily reference leaks or worse. Generally marshaling of unknown void pointers should work as follows:

From Python to C should only allow:
* None to NULL
* Long/Integer to void pointer using PyLong_AsVoidPtr
* PyCapsule held pointer to void pointer

From C to Python:
* Only allow conversion to integer using PyLong_FromVoidPtr because we cannot make any general assumptions as to what the void pointer means.
Comment 1 Simon Feltman 2013-09-26 02:09:30 UTC
All blocking tickets have been resolved.