Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit eda0b3a

Browse files
committed
BUG: decref of field title caused segfault
1 parent 7394436 commit eda0b3a

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

numpy/core/src/multiarray/mapping.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1546,7 +1546,6 @@ _get_field_view(PyArrayObject *arr, PyObject *ind, PyArrayObject **view,
15461546
Py_DECREF(names);
15471547
return 0;
15481548
}
1549-
Py_DECREF(title);
15501549
}
15511550
/* disallow duplicate field indices */
15521551
if (PyDict_Contains(fields, name)) {

numpy/core/tests/test_regression.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2391,3 +2391,15 @@ def test_dtype_scalar_squeeze(self):
23912391
squeezed = scvalue.squeeze(axis=axis)
23922392
assert_equal(squeezed, scvalue)
23932393
assert_equal(type(squeezed), type(scvalue))
2394+
2395+
def test_field_access_by_title(self):
2396+
# gh-11507
2397+
s = 'Some long field name'
2398+
if HAS_REFCOUNT:
2399+
base = sys.getrefcount(s)
2400+
t = np.dtype([((s, 'f1'), np.float64)])
2401+
data = np.zeros(10, t)
2402+
for i in range(10):
2403+
v = str(data[['f1']])
2404+
if HAS_REFCOUNT:
2405+
assert_(base <= sys.getrefcount(s))

0 commit comments

Comments
 (0)