diff options
Diffstat (limited to 'Modules/_ctypes/_ctypes.c')
-rw-r--r-- | Modules/_ctypes/_ctypes.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index d6a435d..5b11480 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -1268,6 +1268,7 @@ c_void_p_from_param(PyObject *type, PyObject *value) } return (PyObject *)parg; } + /* XXX struni: remove later */ /* string */ if (PyString_Check(value)) { PyCArgObject *parg; @@ -1285,6 +1286,23 @@ c_void_p_from_param(PyObject *type, PyObject *value) } return (PyObject *)parg; } +/* bytes */ + if (PyBytes_Check(value)) { + PyCArgObject *parg; + struct fielddesc *fd = getentry("z"); + + parg = new_CArgObject(); + if (parg == NULL) + return NULL; + parg->pffi_type = &ffi_type_pointer; + parg->tag = 'z'; + parg->obj = fd->setfunc(&parg->value, value, 0); + if (parg->obj == NULL) { + Py_DECREF(parg); + return NULL; + } + return (PyObject *)parg; + } /* unicode */ if (PyUnicode_Check(value)) { PyCArgObject *parg; |