Showing the changes to python/ext (1 of 1 file). Show all
Unified · Split
| @@ -310,9 +310,10 @@ static PyObject* Pyaubio_source_iter_next(Py_source *self) { · 309 unmodified lines | |||
| 310 | PyObject *vec = PyTuple_GetItem(done, 0); | 310 | PyObject *vec = PyTuple_GetItem(done, 0); |
| 311 | return vec; | 311 | return vec; |
| 312 | } else if (PyLong_AsLong(size) > 0) { | 312 | } else if (PyLong_AsLong(size) > 0) { |
| 313 | // short read | 313 | // short read, return a shorter array |
| 314 | PyArrayObject *shortread = (PyArrayObject*)PyTuple_GetItem(done, 0); | 314 | PyArrayObject *shortread = (PyArrayObject*)PyTuple_GetItem(done, 0); |
| 315 | PyArray_Dims newdims; | 315 | PyArray_Dims newdims; |
| 316 | PyObject *reshaped; | ||
| 316 | newdims.len = PyArray_NDIM(shortread); | 317 | newdims.len = PyArray_NDIM(shortread); |
| 317 | newdims.ptr = PyArray_DIMS(shortread); | 318 | newdims.ptr = PyArray_DIMS(shortread); |
| 318 | // mono or multiple channels? | 319 | // mono or multiple channels? |
| @@ -321,8 +322,9 @@ static PyObject* Pyaubio_source_iter_next(Py_source *self) { · 2 unmodified lines | |||
| 321 | } else { | 322 | } else { |
| 322 | newdims.ptr[1] = PyLong_AsLong(size); | 323 | newdims.ptr[1] = PyLong_AsLong(size); |
| 323 | } | 324 | } |
| 324 | PyArray_Resize(shortread, &newdims, 1, NPY_ANYORDER); | 325 | reshaped = PyArray_Newshape(shortread, &newdims, NPY_CORDER); |
| 325 | return (PyObject*)shortread; | 326 | Py_DECREF(shortread); |
| 327 | return reshaped; | ||
| 326 | } else { | 328 | } else { |
| 327 | PyErr_SetNone(PyExc_StopIteration); | 329 | PyErr_SetNone(PyExc_StopIteration); |
| 328 | return NULL; | 330 | return NULL; |