[pypy-commit] cffi default: Allow '[...]' when declaring a global array, and interpret it like '[]'.

arigo noreply at buildbot.pypy.org
Sun Oct 28 09:43:10 CET 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r1013:3bb5d49c0c00
Date: 2012-10-28 09:42 +0100
http://bitbucket.org/cffi/cffi/changeset/3bb5d49c0c00/

Log:	Allow '[...]' when declaring a global array, and interpret it like
	'[]'.

diff --git a/cffi/cparser.py b/cffi/cparser.py
--- a/cffi/cparser.py
+++ b/cffi/cparser.py
@@ -162,7 +162,7 @@
                                     decl)
             #
             if decl.name:
-                tp = self._get_type(node)
+                tp = self._get_type(node, partial_length_ok=True)
                 if self._is_constant_declaration(node):
                     self._declare('constant ' + decl.name, tp)
                 else:
diff --git a/testing/test_verify.py b/testing/test_verify.py
--- a/testing/test_verify.py
+++ b/testing/test_verify.py
@@ -1275,3 +1275,15 @@
     result = posix.read(fdr, 256)
     posix.close(fdr)
     assert result == b"Xhello, 42!\n"
+
+def test_global_array_with_missing_length():
+    ffi = FFI()
+    ffi.cdef("int fooarray[];")
+    lib = ffi.verify("int fooarray[50];")
+    assert repr(lib.fooarray).startswith("<cdata 'int *'")
+
+def test_global_array_with_dotdotdot_length():
+    ffi = FFI()
+    ffi.cdef("int fooarray[...];")
+    lib = ffi.verify("int fooarray[50];")
+    assert repr(lib.fooarray).startswith("<cdata 'int *'")


More information about the pypy-commit mailing list