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

Reply via email to