[PATCH 2/4] python: Call SWIG_NewPointerObj rather than SWIG_Python_NewPointerObj.

Tobias Mueller muelli at cryptobitch.de
Tue Dec 20 18:01:27 CET 2016

* lang/python/gpgme.i (pygpgme_wrap_gpgme_data_t): Provide a "self"
variable for SWIG_NewPointerObj and call SWIG_NewPointerObj rather than

SWIG_Python_NewPointerObj seems to be an implementation detail, because
SWIG's documentation does not mention that function at all.  In fact,
SWIG_NewPointerObj is a call to SWIG_Python_NewPointerObj with the first
parameter being either NULL or the "self" variable, depending on whether
SWIG is called with the -builtin flag.  So far, the first parameter was
hard-coded to NULL.  This change also hard-codes it to NULL but makes
it more explicit.  The benefit is that the documented function is being
used and that compilation works regardless of the -builtin flag.

Partially reverts: 856bcfe2934237011984fab0bc69800a7c25c34b

Signed-off-by: Tobias Mueller <muelli at cryptobitch.de>
 lang/python/gpgme.i | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lang/python/gpgme.i b/lang/python/gpgme.i
index 73533d0..70b87e6 100644
--- a/lang/python/gpgme.i
+++ b/lang/python/gpgme.i
@@ -611,7 +611,11 @@ FILE *fdopen(int fildes, const char *mode);
 PyObject *
 _gpg_wrap_gpgme_data_t(gpgme_data_t data)
-  return SWIG_Python_NewPointerObj(NULL, data, SWIGTYPE_p_gpgme_data, 0);
+  /* SWIG_NewPointerObj may assume a "self" variable in case
+     the -builtin flag is used.
+   */
+  PyObject* self = NULL;
+  return SWIG_NewPointerObj(data, SWIGTYPE_p_gpgme_data, 0);

More information about the Gnupg-devel mailing list