aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2016-06-08 15:04:02 +0000
committerJustus Winter <[email protected]>2016-06-08 15:12:00 +0000
commit990492ea4f7dafbb75de15ea91c30cbf090034b5 (patch)
tree1fcded5fc6e327c64a5dd34f397fb489fd211945
parentpython: Implement the context manager protocol. (diff)
downloadgpgme-990492ea4f7dafbb75de15ea91c30cbf090034b5.tar.gz
gpgme-990492ea4f7dafbb75de15ea91c30cbf090034b5.zip
python: Fix type.
* lang/python/gpgme.i: Use correct Python type for size. Signed-off-by: Justus Winter <[email protected]>
-rw-r--r--lang/python/gpgme.i14
1 files changed, 12 insertions, 2 deletions
diff --git a/lang/python/gpgme.i b/lang/python/gpgme.i
index f466a874..98f30d55 100644
--- a/lang/python/gpgme.i
+++ b/lang/python/gpgme.i
@@ -183,18 +183,28 @@
/* For gpgme_data_write, but should be universal. */
%typemap(in) (const void *buffer, size_t size) {
+ Py_ssize_t ssize;
+
if ($input == Py_None)
$1 = NULL, $2 = 0;
else if (PyUnicode_Check($input))
- $1 = PyUnicode_AsUTF8AndSize($input, (size_t *) &$2);
+ $1 = PyUnicode_AsUTF8AndSize($input, &ssize);
else if (PyBytes_Check($input))
- PyBytes_AsStringAndSize($input, (char **) &$1, (size_t *) &$2);
+ PyBytes_AsStringAndSize($input, (char **) &$1, &ssize);
else {
PyErr_Format(PyExc_TypeError,
"arg %d: expected str, bytes, or None, got %s",
$argnum, $input->ob_type->tp_name);
return NULL;
}
+
+ if (! $1)
+ $2 = 0;
+ else
+ {
+ assert (ssize >= 0);
+ $2 = (size_t) ssize;
+ }
}
%typemap(freearg) (const void *buffer, size_t size) "";