Author: Armin Rigo <[email protected]>
Branch:
Changeset: r57127:3ab2dfb42c1f
Date: 2012-09-04 15:32 +0200
http://bitbucket.org/pypy/pypy/changeset/3ab2dfb42c1f/
Log: Update for cffi/cffi 41a7f979ae19.
diff --git a/pypy/module/_cffi_backend/__init__.py
b/pypy/module/_cffi_backend/__init__.py
--- a/pypy/module/_cffi_backend/__init__.py
+++ b/pypy/module/_cffi_backend/__init__.py
@@ -30,6 +30,7 @@
'offsetof': 'func.offsetof',
'_getfields': 'func._getfields',
'getcname': 'func.getcname',
+ '_get_types': 'func._get_types',
'string': 'func.string',
'buffer': 'cbuffer.buffer',
diff --git a/pypy/module/_cffi_backend/func.py
b/pypy/module/_cffi_backend/func.py
--- a/pypy/module/_cffi_backend/func.py
+++ b/pypy/module/_cffi_backend/func.py
@@ -75,3 +75,9 @@
@unwrap_spec(cdata=cdataobj.W_CData, maxlen=int)
def string(space, cdata, maxlen=-1):
return cdata.ctype.string(cdata, maxlen)
+
+# ____________________________________________________________
+
+def _get_types(space):
+ return space.newtuple([space.gettypefor(cdataobj.W_CData),
+ space.gettypefor(ctypeobj.W_CType)])
diff --git a/pypy/module/_cffi_backend/test/_backend_test_c.py
b/pypy/module/_cffi_backend/test/_backend_test_c.py
--- a/pypy/module/_cffi_backend/test/_backend_test_c.py
+++ b/pypy/module/_cffi_backend/test/_backend_test_c.py
@@ -2063,3 +2063,16 @@
BStruct = new_struct_type("foo")
complete_struct_or_union(BStruct, [('b', BInt, -1, 1)],
None, 5, 1)
+
+def test_CData_CType():
+ CData, CType = _get_types()
+ BChar = new_primitive_type("char")
+ BCharP = new_pointer_type(BChar)
+ nullchr = cast(BChar, 0)
+ chrref = newp(BCharP, None)
+ assert isinstance(nullchr, CData)
+ assert isinstance(chrref, CData)
+ assert not isinstance(BChar, CData)
+ assert not isinstance(nullchr, CType)
+ assert not isinstance(chrref, CType)
+ assert isinstance(BChar, CType)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit