Commits

Armin Rigo committed 2e6275a

Fixes for test_verify.

Comments (0)

Files changed (2)

c/_cffi_backend.c

 static char *_cffi_to_c_pointer(PyObject *obj, CTypeDescrObject *ct)
 {
     char *result;
-    if (convert_from_object((char *)&result, ct, obj) < 0)
+    if (convert_from_object((char *)&result, ct, obj) < 0) {
+        if (PyFile_Check(obj) && (ct->ct_flags & CT_POINTER) &&
+                   (ct->ct_itemdescr->ct_flags & CT_IS_FILE)) {
+            PyErr_Clear();
+            return (char *)PyFile_AsFile(obj);
+        }
         return NULL;
+    }
     return result;
 }
 

testing/test_verify.py

     import posix
     fdr, fdw = posix.pipe()
     fw1 = posix.fdopen(fdw, 'wb', 256)
-    lib.myfile = fw1
+    lib.myfile = ffi.cast("FILE *", fw1)
     #
     fw1.write(b"X")
     r = lib.myprintf(b"hello, %d!\n", ffi.cast("int", 42))