MCPcopy Create free account
hub / github.com/numpy/numpy / _set_constant

Function _set_constant

numpy/core/src/multiarray/iterators.c:1551–1582  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1549static void neighiter_dealloc(PyArrayNeighborhoodIterObject* iter);
1550
1551static char* _set_constant(PyArrayNeighborhoodIterObject* iter,
1552 PyArrayObject *fill)
1553{
1554 char *ret;
1555 PyArrayIterObject *ar = iter->_internal_iter;
1556 int storeflags, st;
1557
1558 ret = PyDataMem_NEW(PyArray_DESCR(ar->ao)->elsize);
1559 if (ret == NULL) {
1560 PyErr_SetNone(PyExc_MemoryError);
1561 return NULL;
1562 }
1563
1564 if (PyArray_ISOBJECT(ar->ao)) {
1565 memcpy(ret, PyArray_DATA(fill), sizeof(PyObject*));
1566 Py_INCREF(*(PyObject**)ret);
1567 } else {
1568 /* Non-object types */
1569
1570 storeflags = PyArray_FLAGS(ar->ao);
1571 PyArray_ENABLEFLAGS(ar->ao, NPY_ARRAY_BEHAVED);
1572 st = PyArray_SETITEM(ar->ao, ret, (PyObject*)fill);
1573 ((PyArrayObject_fields *)ar->ao)->flags = storeflags;
1574
1575 if (st < 0) {
1576 PyDataMem_FREE(ret);
1577 return NULL;
1578 }
1579 }
1580
1581 return ret;
1582}
1583
1584#define _INF_SET_PTR(c) \
1585 bd = coordinates[c] + p->coordinates[c]; \

Callers 1

Calls 7

PyDataMem_NEWFunction · 0.85
PyArray_DESCRFunction · 0.85
PyArray_DATAFunction · 0.85
PyArray_FLAGSFunction · 0.85
PyArray_ENABLEFLAGSFunction · 0.85
PyArray_SETITEMFunction · 0.85
PyDataMem_FREEFunction · 0.85

Tested by

no test coverage detected