Author: Armin Rigo <ar...@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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit