[pypy-commit] pypy ffi-backend: Test and fix
arigo
noreply at buildbot.pypy.org
Sat Jul 7 12:30:17 CEST 2012
Author: Armin Rigo <arigo at tunes.org>
Branch: ffi-backend
Changeset: r55960:d7a56e55a7e6
Date: 2012-07-07 12:30 +0200
http://bitbucket.org/pypy/pypy/changeset/d7a56e55a7e6/
Log: Test and fix
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
@@ -36,8 +36,10 @@
def sizeof(space, w_obj):
ob = space.interpclass_w(w_obj)
if isinstance(ob, cdataobj.W_CData):
- # xxx CT_ARRAY
- size = ob.ctype.size
+ if isinstance(ob, cdataobj.W_CDataNewOwningLength):
+ size = ob._owning_num_bytes()
+ else:
+ size = ob.ctype.size
elif isinstance(ob, ctypeobj.W_CType):
size = ob.size
if size < 0:
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
@@ -1299,3 +1299,4 @@
BArray = new_array_type(new_pointer_type(BInt), None) # int[]
p = newp(BArray, 7)
assert repr(p) == "<cdata 'int[]' owning 28 bytes>"
+ assert sizeof(p) == 28
More information about the pypy-commit
mailing list