Repository navigation
Derby: Convert the audioop module to use Argument Clinic #64332
Description
Activity
Here is a patch which converts the audioop module to use Argument Clinic. 26 functions are converted. Also it adds docstrings for audioop functions.
There are two problems:
-
Test test_string crashes. Perhaps here is a bug in Argument Clinic (Py_buffer arguments are not initialized).
-
Pydoc for ratecv (and only for this function) returns:
ratecv =
-
- addedextension-modulesC modules in the Modules dirC modules in the Modules dirtype-featureA feature request or enhancementA feature request or enhancement
on Jan 5, 2014 Can you refresh the patch? I think all the problems you cited are fixed, and also the comments Argument Clinic uses were all changed. I'll review when you have a fresh patch.
- changed the title
[-]Convert the audioop module to use Argument Clinic[/-][+]Derby: Convert the audioop module to use Argument Clinic[/+]on Jan 7, 2014 Here is refreshed patch.
Serhiy: Assigning to you because you wrote a patch; if you don't want the issue, sorry, please undo it.
Patch updated to tip (a little different generated code for Py_buffer).
I don't want to use return converters here because I want to add support for float32 and float64 in 3.5.
I don't understand. Python already has "double" which is float64. Why would Python need a second floating-point type which isn't as good?
In any case, if somehow you get float32 in, we could just change the return converters then. So I would still prefer float return converters for now.
I mean I want to add support for float32 and float64 in audioop functions. In that case return value of getsample(), max(), ets will be no longer integer for float format.
New changeset d4099b8a7d0f by Serhiy Storchaka in branch 'default':
Issue bpo-20133: The audioop module now uses Argument Clinic.
http://hg.python.org/cpython/rev/d4099b8a7d0fChristian Heimes just posted this to python-dev:
Coverity has detected an issue in this commit:
** CID 1164423: Division or modulo by zero (DIVIDE_BY_ZERO)
/Modules/audioop.c: 1375 in audioop_ratecv_impl()________________________________________________________________________________________________________ *** CID 1164423: Division or modulo by zero (DIVIDE_BY_ZERO) /Modules/audioop.c: 1375 in audioop_ratecv_impl() 1369 without spurious overflow is the challenge; we can 1370 settle for a reasonable upper bound, though, in this 1371 case ceiling(len/inrate) * outrate. */ 1372 1373 /* compute ceiling(len/inrate) without overflow */ 1374 Py_ssize_t q = len > 0 ? 1 + (len - 1) / inrate : 0; >>> CID 1164423: Division or modulo by zero (DIVIDE_BY_ZERO) >>> In expression "9223372036854775807L / q", division by expression "q" which may be zero has undefined behavior. 1375 if (outrate > PY_SSIZE_T_MAX / q / bytes_per_frame) 1376 str = NULL; 1377 else 1378 str = PyBytes_FromStringAndSize(NULL, 1379 q * outrate * bytes_per_frame); 1380 }
Christian Heimes just posted this to python-dev:
See bpo-20394. This is unrelated to clicalization patch.
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields: