mirror of https://github.com/python/cpython
c_void_p.from_param accepts bytes. Fix test_prototypes.
This commit is contained in:
parent
3d79dd9edf
commit
3821e31d19
|
@ -104,7 +104,7 @@ class CharPointersTestCase(unittest.TestCase):
|
||||||
func.argtypes = c_void_p,
|
func.argtypes = c_void_p,
|
||||||
|
|
||||||
self.failUnlessEqual(None, func(None))
|
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("123", func(c_char_p("123")))
|
||||||
self.failUnlessEqual(None, func(c_char_p(None)))
|
self.failUnlessEqual(None, func(c_char_p(None)))
|
||||||
|
|
||||||
|
|
|
@ -1268,11 +1268,29 @@ c_void_p_from_param(PyObject *type, PyObject *value)
|
||||||
}
|
}
|
||||||
return (PyObject *)parg;
|
return (PyObject *)parg;
|
||||||
}
|
}
|
||||||
|
/* XXX struni: remove later */
|
||||||
/* string */
|
/* string */
|
||||||
if (PyString_Check(value)) {
|
if (PyString_Check(value)) {
|
||||||
PyCArgObject *parg;
|
PyCArgObject *parg;
|
||||||
struct fielddesc *fd = getentry("z");
|
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;
|
||||||
|
}
|
||||||
|
/* bytes */
|
||||||
|
if (PyBytes_Check(value)) {
|
||||||
|
PyCArgObject *parg;
|
||||||
|
struct fielddesc *fd = getentry("z");
|
||||||
|
|
||||||
parg = new_CArgObject();
|
parg = new_CArgObject();
|
||||||
if (parg == NULL)
|
if (parg == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Reference in New Issue