| 1549 | static void neighiter_dealloc(PyArrayNeighborhoodIterObject* iter); |
| 1550 | |
| 1551 | static 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]; \ |
no test coverage detected