comparison Python/getargs.c @ 43423:0476a2cc5658

Change PyBuffer to Py_buffer to be consistent with other non-object structures like Py_complex. Add some more functionality to the memoryview object.
author Travis E. Oliphant <oliphant@enthought.com>
date Sun, 23 Sep 2007 02:00:13 +0000
parents 34491dc143e7
children 8e72dacf7f3a
comparison
equal deleted inserted replaced
43421:f31d415554cd 43423:0476a2cc5658
1209 case 'w': { /* memory buffer, read-write access */ 1209 case 'w': { /* memory buffer, read-write access */
1210 void **p = va_arg(*p_va, void **); 1210 void **p = va_arg(*p_va, void **);
1211 PyBufferProcs *pb = arg->ob_type->tp_as_buffer; 1211 PyBufferProcs *pb = arg->ob_type->tp_as_buffer;
1212 int count; 1212 int count;
1213 int temp=-1; 1213 int temp=-1;
1214 PyBuffer view; 1214 Py_buffer view;
1215 1215
1216 if (pb == NULL || 1216 if (pb == NULL ||
1217 pb->bf_getbuffer == NULL || 1217 pb->bf_getbuffer == NULL ||
1218 ((temp = (*pb->bf_getbuffer)(arg, &view, 1218 ((temp = (*pb->bf_getbuffer)(arg, &view,
1219 PyBUF_SIMPLE)) != 0) || 1219 PyBUF_SIMPLE)) != 0) ||
1240 1240
1241 case 't': { /* 8-bit character buffer, read-only access */ 1241 case 't': { /* 8-bit character buffer, read-only access */
1242 char **p = va_arg(*p_va, char **); 1242 char **p = va_arg(*p_va, char **);
1243 PyBufferProcs *pb = arg->ob_type->tp_as_buffer; 1243 PyBufferProcs *pb = arg->ob_type->tp_as_buffer;
1244 int count; 1244 int count;
1245 PyBuffer view; 1245 Py_buffer view;
1246 1246
1247 if (*format++ != '#') 1247 if (*format++ != '#')
1248 return converterr( 1248 return converterr(
1249 "invalid use of 't' format character", 1249 "invalid use of 't' format character",
1250 arg, msgbuf, bufsize); 1250 arg, msgbuf, bufsize);
1284 static Py_ssize_t 1284 static Py_ssize_t
1285 convertbuffer(PyObject *arg, void **p, char **errmsg) 1285 convertbuffer(PyObject *arg, void **p, char **errmsg)
1286 { 1286 {
1287 PyBufferProcs *pb = arg->ob_type->tp_as_buffer; 1287 PyBufferProcs *pb = arg->ob_type->tp_as_buffer;
1288 Py_ssize_t count; 1288 Py_ssize_t count;
1289 PyBuffer view; 1289 Py_buffer view;
1290 1290
1291 *errmsg = NULL; 1291 *errmsg = NULL;
1292 *p = NULL; 1292 *p = NULL;
1293 if (pb == NULL || 1293 if (pb == NULL ||
1294 pb->bf_getbuffer == NULL) { 1294 pb->bf_getbuffer == NULL) {