Author: Armin Rigo <[email protected]>
Branch: cffi-1.0
Changeset: r77247:f111103348b8
Date: 2015-05-09 12:49 +0200
http://bitbucket.org/pypy/pypy/changeset/f111103348b8/

Log:    ffi.CData, ffi.CType

diff --git a/pypy/module/_cffi_backend/ffi_obj.py 
b/pypy/module/_cffi_backend/ffi_obj.py
--- a/pypy/module/_cffi_backend/ffi_obj.py
+++ b/pypy/module/_cffi_backend/ffi_obj.py
@@ -389,6 +389,12 @@
     r.__init__(space, src_ctx)
     return space.wrap(r)
 
+def make_CData(space):
+    return space.gettypefor(W_CData)
+
+def make_CType(space):
+    return space.gettypefor(W_CType)
+
 def make_NULL(space):
     ctvoidp = newtype._new_voidp_type(space)
     w_NULL = ctvoidp.cast(space.wrap(0))
@@ -402,6 +408,8 @@
         'CompiledFFI',
         __new__     = interp2app(W_FFIObject___new__),
         __init__    = interp2app(W_FFIObject.descr_init),
+        CData       = ClassAttr(make_CData),
+        CType       = ClassAttr(make_CType),
         NULL        = ClassAttr(make_NULL),
         error       = ClassAttr(make_error),
         errno       = GetSetProperty(W_FFIObject.get_errno,
diff --git a/pypy/module/_cffi_backend/test/test_ffi_obj.py 
b/pypy/module/_cffi_backend/test/test_ffi_obj.py
--- a/pypy/module/_cffi_backend/test/test_ffi_obj.py
+++ b/pypy/module/_cffi_backend/test/test_ffi_obj.py
@@ -197,3 +197,11 @@
         assert ffi.typeof(c) is ffi.typeof("char[]")
         ffi.cast("unsigned short *", c)[1] += 500
         assert list(a) == [10000, 20500, 30000]
+
+    def test_ffi_types(self):
+        import _cffi_backend as _cffi1_backend
+        CData = _cffi1_backend.FFI.CData
+        CType = _cffi1_backend.FFI.CType
+        ffi = _cffi1_backend.FFI()
+        assert isinstance(ffi.cast("int", 42), CData)
+        assert isinstance(ffi.typeof("int"), CType)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to