Fix dtype string leak

`PyArray_DescrConverter_` doesn't steal a reference to the argument,
and so the passed arguments shouldn't be `.release()`d.
This commit is contained in:
Jason Rhinelander
2017-09-19 22:12:46 -03:00
parent 0aef6422a3
commit c6a57c10d1
3 changed files with 17 additions and 1 deletions

View File

@@ -440,7 +440,7 @@ public:
/// This is essentially the same as calling numpy.dtype(args) in Python.
static dtype from_args(object args) {
PyObject *ptr = nullptr;
if (!detail::npy_api::get().PyArray_DescrConverter_(args.release().ptr(), &ptr) || !ptr)
if (!detail::npy_api::get().PyArray_DescrConverter_(args.ptr(), &ptr) || !ptr)
throw error_already_set();
return reinterpret_steal<dtype>(ptr);
}