From 05e1346c8a0b371368d2c7a7c9c61c52c58b68aa Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Sat, 30 Mar 2013 19:54:14 -0400 Subject: [PATCH] fix field buffer --- devsupApp/src/dbfield.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/devsupApp/src/dbfield.c b/devsupApp/src/dbfield.c index 411559d..7fc2a34 100644 --- a/devsupApp/src/dbfield.c +++ b/devsupApp/src/dbfield.c @@ -178,7 +178,7 @@ static Py_ssize_t pyField_buf_getbuf(pyField *self, Py_ssize_t bufid, void **dat return -1; } *data = self->addr.pfield; - return 0; + return self->addr.field_size * self->addr.no_elements; } static Py_ssize_t pyField_buf_getcharbuf(pyField *self, Py_ssize_t bufid, char **data) @@ -186,13 +186,12 @@ static Py_ssize_t pyField_buf_getcharbuf(pyField *self, Py_ssize_t bufid, char * if(bufid!=0) { PyErr_SetString(PyExc_SystemError, "Requested invalid segment"); return -1; - } - if(self->addr.field_size!=1) { + } else if(self->addr.field_size!=1) { PyErr_SetString(PyExc_TypeError, "Field type must be CHAR or UCHAR"); return -1; } *data = self->addr.pfield; - return 0; + return self->addr.field_size * self->addr.no_elements; } static int pyField_buf_getbufferproc(pyField *self, Py_buffer *buf, int flags)