summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Leech <andrew@alelec.net>2016-09-12 15:10:45 +1000
committerAndrew Leech <andrew@alelec.net>2016-09-12 15:10:45 +1000
commitdeff4b685b23087a84e77e32a985d6c69a147363 (patch)
tree536b5df704324c7ad8251b92628bd5b0c3f51b9e
parent9ba91de3ed25033a7c3593610702a31ba395336d (diff)
downloadcffi-new_struct_allocated_size.tar.gz
When getting repr on CDataObject_own_structptr, use length field for owned bytesnew_struct_allocated_size
-rw-r--r--c/_cffi_backend.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/c/_cffi_backend.c b/c/_cffi_backend.c
index da403f9..9f70be7 100644
--- a/c/_cffi_backend.c
+++ b/c/_cffi_backend.c
@@ -1814,7 +1814,9 @@ static PyObject *_cdata_repr2(CDataObject *cd, char *text, PyObject *x)
static PyObject *cdataowning_repr(CDataObject *cd)
{
Py_ssize_t size;
- if (cd->c_type->ct_flags & CT_POINTER)
+ if (cd->c_type->ct_flags & CT_IS_PTR_TO_OWNED)
+ size = ((CDataObject_own_structptr *)cd)->length;
+ else if (cd->c_type->ct_flags & CT_POINTER)
size = cd->c_type->ct_itemdescr->ct_size;
else if (cd->c_type->ct_flags & CT_ARRAY)
size = get_array_length(cd) * cd->c_type->ct_itemdescr->ct_size;