[pypy-commit] cffi new_struct_allocated_size: Add length field to CDataObject_own_structptr to hold the size of the memory block allocated for the struct.
coronafire
pypy.commits at gmail.com
Wed Oct 19 02:53:26 EDT 2016
Author: Andrew Leech <andrew at alelec.net>
Branch: new_struct_allocated_size
Changeset: r2786:8e7211a884bd
Date: 2016-09-12 14:02 +1000
http://bitbucket.org/cffi/cffi/changeset/8e7211a884bd/
Log: Add length field to CDataObject_own_structptr to hold the size of
the memory block allocated for the struct. This is particularly
useful for C99 variable-sized structures where the sizeof(<typedef>)
does not directly inform the allocated size.
diff --git a/c/_cffi_backend.c b/c/_cffi_backend.c
--- a/c/_cffi_backend.c
+++ b/c/_cffi_backend.c
@@ -238,6 +238,7 @@
typedef struct {
CDataObject head;
+ Py_ssize_t length; /* same as CDataObject_own_length up to here */
PyObject *structobj;
} CDataObject_own_structptr;
@@ -3199,6 +3200,7 @@
}
/* store the only reference to cds into cd */
((CDataObject_own_structptr *)cd)->structobj = (PyObject *)cds;
+ ((CDataObject_own_structptr *)cd)->length = datasize;
assert(explicitlength < 0);
cd->c_data = cds->c_data;
More information about the pypy-commit
mailing list