summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;