[Python-3000-checkins] r56331 - in python/branches/py3k-struni: Lib/ctypes/test/test_prototypes.py Modules/_ctypes/_ctypes.c
thomas.heller
python-3000-checkins at python.org
Thu Jul 12 21:38:33 CEST 2007
Author: thomas.heller
Date: Thu Jul 12 21:38:33 2007
New Revision: 56331
Modified:
python/branches/py3k-struni/Lib/ctypes/test/test_prototypes.py
python/branches/py3k-struni/Modules/_ctypes/_ctypes.c
Log:
c_void_p.from_param accepts bytes. Fix test_prototypes.
Modified: python/branches/py3k-struni/Lib/ctypes/test/test_prototypes.py
==============================================================================
--- python/branches/py3k-struni/Lib/ctypes/test/test_prototypes.py (original)
+++ python/branches/py3k-struni/Lib/ctypes/test/test_prototypes.py Thu Jul 12 21:38:33 2007
@@ -104,7 +104,7 @@
func.argtypes = c_void_p,
self.failUnlessEqual(None, func(None))
- self.failUnlessEqual("123", func("123"))
+ self.failUnlessEqual("123", func(b"123"))
self.failUnlessEqual("123", func(c_char_p("123")))
self.failUnlessEqual(None, func(c_char_p(None)))
Modified: python/branches/py3k-struni/Modules/_ctypes/_ctypes.c
==============================================================================
--- python/branches/py3k-struni/Modules/_ctypes/_ctypes.c (original)
+++ python/branches/py3k-struni/Modules/_ctypes/_ctypes.c Thu Jul 12 21:38:33 2007
@@ -1268,6 +1268,7 @@
}
return (PyObject *)parg;
}
+ /* XXX struni: remove later */
/* string */
if (PyString_Check(value)) {
PyCArgObject *parg;
@@ -1285,6 +1286,23 @@
}
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;
More information about the Python-3000-checkins
mailing list