PyAPI: Make use of PyC_LongAs... API
Avoids setting exceptions inline, also use Matrix_ParseAny for bmesh.ops. Some inline exceptions are kept because they show useful details.
This commit is contained in:
@@ -32,6 +32,8 @@
|
||||
#include "BLI_math.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "../generic/py_capi_utils.h"
|
||||
|
||||
#ifndef MATH_STANDALONE
|
||||
# include "BLI_dynstr.h"
|
||||
#endif
|
||||
@@ -403,7 +405,7 @@ static PyObject *Vector_resize(VectorObject *self, PyObject *value)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((size = PyLong_AsLong(value)) == -1) {
|
||||
if ((size = PyC_Long_AsI32(value)) == -1) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"Vector.resize(size): "
|
||||
"expected size argument to be an integer");
|
||||
|
||||
@@ -761,7 +761,7 @@ static PyObject *C_BVHTree_FromPolygons(PyObject *UNUSED(cls), PyObject *args, P
|
||||
py_tricoords_fast_items = PySequence_Fast_ITEMS(py_tricoords_fast);
|
||||
|
||||
for (j = 0; j < 3; j++) {
|
||||
tri[j] = (unsigned int)_PyLong_AsInt(py_tricoords_fast_items[j]);
|
||||
tri[j] = PyC_Long_AsU32(py_tricoords_fast_items[j]);
|
||||
if (UNLIKELY(tri[j] >= (unsigned int)coords_len)) {
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"%s: index %d must be less than %d",
|
||||
@@ -812,7 +812,7 @@ static PyObject *C_BVHTree_FromPolygons(PyObject *UNUSED(cls), PyObject *args, P
|
||||
p_plink_prev = &plink->next;
|
||||
|
||||
for (j = 0; j < py_tricoords_len; j++) {
|
||||
plink->poly[j] = (unsigned int)_PyLong_AsInt(py_tricoords_fast_items[j]);
|
||||
plink->poly[j] = PyC_Long_AsU32(py_tricoords_fast_items[j]);
|
||||
if (UNLIKELY(plink->poly[j] >= (unsigned int)coords_len)) {
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"%s: index %d must be less than %d",
|
||||
|
||||
Reference in New Issue
Block a user