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