Fix the error handling for the PyObject_GetBuffer() calls in pybuffer.i
Closes #1640.
This commit is contained in:
parent
db3774ac8d
commit
772dfd5dcb
1 changed files with 11 additions and 13 deletions
|
|
@ -17,13 +17,13 @@
|
||||||
int res; Py_ssize_t size = 0; void *buf = 0;
|
int res; Py_ssize_t size = 0; void *buf = 0;
|
||||||
Py_buffer view;
|
Py_buffer view;
|
||||||
res = PyObject_GetBuffer($input, &view, PyBUF_WRITABLE);
|
res = PyObject_GetBuffer($input, &view, PyBUF_WRITABLE);
|
||||||
size = view.len;
|
|
||||||
buf = view.buf;
|
|
||||||
PyBuffer_Release(&view);
|
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
%argument_fail(res, "(TYPEMAP, SIZE)", $symname, $argnum);
|
%argument_fail(res, "(TYPEMAP, SIZE)", $symname, $argnum);
|
||||||
}
|
}
|
||||||
|
size = view.len;
|
||||||
|
buf = view.buf;
|
||||||
|
PyBuffer_Release(&view);
|
||||||
$1 = ($1_ltype) buf;
|
$1 = ($1_ltype) buf;
|
||||||
$2 = ($2_ltype) (size/sizeof($*1_type));
|
$2 = ($2_ltype) (size/sizeof($*1_type));
|
||||||
}
|
}
|
||||||
|
|
@ -47,12 +47,12 @@
|
||||||
int res; void *buf = 0;
|
int res; void *buf = 0;
|
||||||
Py_buffer view;
|
Py_buffer view;
|
||||||
res = PyObject_GetBuffer($input, &view, PyBUF_WRITABLE);
|
res = PyObject_GetBuffer($input, &view, PyBUF_WRITABLE);
|
||||||
buf = view.buf;
|
|
||||||
PyBuffer_Release(&view);
|
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
%argument_fail(res, "(TYPEMAP)", $symname, $argnum);
|
%argument_fail(res, "(TYPEMAP)", $symname, $argnum);
|
||||||
}
|
}
|
||||||
|
buf = view.buf;
|
||||||
|
PyBuffer_Release(&view);
|
||||||
$1 = ($1_ltype) buf;
|
$1 = ($1_ltype) buf;
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
@ -76,13 +76,13 @@
|
||||||
int res; Py_ssize_t size = 0; const void *buf = 0;
|
int res; Py_ssize_t size = 0; const void *buf = 0;
|
||||||
Py_buffer view;
|
Py_buffer view;
|
||||||
res = PyObject_GetBuffer($input, &view, PyBUF_CONTIG_RO);
|
res = PyObject_GetBuffer($input, &view, PyBUF_CONTIG_RO);
|
||||||
size = view.len;
|
|
||||||
buf = view.buf;
|
|
||||||
PyBuffer_Release(&view);
|
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
%argument_fail(res, "(TYPEMAP, SIZE)", $symname, $argnum);
|
%argument_fail(res, "(TYPEMAP, SIZE)", $symname, $argnum);
|
||||||
}
|
}
|
||||||
|
size = view.len;
|
||||||
|
buf = view.buf;
|
||||||
|
PyBuffer_Release(&view);
|
||||||
$1 = ($1_ltype) buf;
|
$1 = ($1_ltype) buf;
|
||||||
$2 = ($2_ltype) (size / sizeof($*1_type));
|
$2 = ($2_ltype) (size / sizeof($*1_type));
|
||||||
}
|
}
|
||||||
|
|
@ -108,14 +108,12 @@
|
||||||
int res; const void *buf = 0;
|
int res; const void *buf = 0;
|
||||||
Py_buffer view;
|
Py_buffer view;
|
||||||
res = PyObject_GetBuffer($input, &view, PyBUF_CONTIG_RO);
|
res = PyObject_GetBuffer($input, &view, PyBUF_CONTIG_RO);
|
||||||
buf = view.buf;
|
|
||||||
PyBuffer_Release(&view);
|
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
|
PyErr_Clear();
|
||||||
%argument_fail(res, "(TYPEMAP)", $symname, $argnum);
|
%argument_fail(res, "(TYPEMAP)", $symname, $argnum);
|
||||||
}
|
}
|
||||||
|
buf = view.buf;
|
||||||
|
PyBuffer_Release(&view);
|
||||||
$1 = ($1_ltype) buf;
|
$1 = ($1_ltype) buf;
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue