diff --git a/alsaaudio.c b/alsaaudio.c index c0051ae..2c587b7 100644 --- a/alsaaudio.c +++ b/alsaaudio.c @@ -1051,7 +1051,7 @@ alsapcm_read(alsapcm_t *self, PyObject *args) { int res; int size = self->framesize * self->periodsize; - int sizeout; + int sizeout = 0; PyObject *buffer_obj, *tuple_obj, *res_obj; char *buffer; @@ -1106,12 +1106,11 @@ alsapcm_read(alsapcm_t *self, PyObject *args) } } - if (res <= 0) { - sizeout = 0; - } else { + if (res > 0 ) { sizeout = res * self->framesize; } + if (size != sizeout) { #if PY_MAJOR_VERSION < 3 /* If the following fails, it will free the object */ if (_PyString_Resize(&buffer_obj, sizeout)) @@ -1121,7 +1120,8 @@ alsapcm_read(alsapcm_t *self, PyObject *args) if (_PyBytes_Resize(&buffer_obj, sizeout)) return NULL; #endif - + } + res_obj = PyLong_FromLong(res); if (!res_obj) { Py_DECREF(buffer_obj);