Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r907:8dadf841d6f3
Date: 2012-08-31 15:24 +0200
http://bitbucket.org/cffi/cffi/changeset/8dadf841d6f3/

Log:    Ask for the length of the list from C code, too.

diff --git a/demo/pyobj.py b/demo/pyobj.py
--- a/demo/pyobj.py
+++ b/demo/pyobj.py
@@ -33,9 +33,14 @@
 
 ffi.cdef("""
     typedef int pyobj_t;
-    int sum(pyobj_t oblist, int count);
+    int sum(pyobj_t oblist);
 """)
 
[email protected]("int(pyobj_t)")
+def length(oblist):
+    list = referents[oblist]
+    return len(list)
+
 @ffi.pyexport("int(pyobj_t, int)")
 def getitem(oblist, index):
     list = referents[oblist]
@@ -44,8 +49,9 @@
 lib = ffi.verify("""
     typedef int pyobj_t;
 
-    int sum(pyobj_t oblist, int count) {
+    int sum(pyobj_t oblist) {
         int i, result = 0;
+        int count = length(oblist);
         for (i=0; i<count; i++) {
             int n = getitem(oblist, i);
             result += n;
@@ -55,4 +61,4 @@
 """)
 
 with Ref([10, 20, 30, 40]) as oblist:
-    print lib.sum(oblist, 4)
+    print lib.sum(oblist)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to