From: Serhiy Storchaka Date: Sat, 9 Nov 2013 21:15:52 +0000 (+0200) Subject: Issue #1575020: Fixed support of 24-bit wave files on big-endian platforms. X-Git-Tag: v3.4.0b1~332 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=29828a6fa9a7d42b1f2383860d37cdf7d9e74d49;p=thirdparty%2FPython%2Fcpython.git Issue #1575020: Fixed support of 24-bit wave files on big-endian platforms. --- 29828a6fa9a7d42b1f2383860d37cdf7d9e74d49 diff --cc Lib/wave.py index 0e6628b087a1,6285c7487659..e72342394546 --- a/Lib/wave.py +++ b/Lib/wave.py @@@ -85,11 -85,13 +85,17 @@@ _array_fmts = None, 'b', 'h', None, 'i import struct import sys from chunk import Chunk +from collections import namedtuple + def _byteswap3(data): + ba = bytearray(data) + ba[::3] = data[2::3] + ba[2::3] = data[::3] + return bytes(ba) + +_wave_params = namedtuple('_wave_params', + 'nchannels sampwidth framerate nframes comptype compname') + class Wave_read: """Variables used in this class: diff --cc Misc/NEWS index 107d084ac4d9,e96504e9a10f..e780fdfbf518 --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -28,66 -58,75 +28,68 @@@ Core and Builtin - Issue #18603: Ensure that PyOS_mystricmp and PyOS_mystrnicmp are in the Python executable and not removed by the linker's optimizer. -- Issue #19279: UTF-7 decoder no more produces illegal strings. - -- Fix macro expansion of _PyErr_OCCURRED(), and make sure to use it in at - least one place so as to avoid regressions. - -- Issue #19014: memoryview.cast() is now allowed on zero-length views. - -- Issue #19098: Prevent overflow in the compiler when the recursion limit is set - absurdly high. - -- Issue #18942: sys._debugmallocstats() output was damaged on Windows. +- Issue #19306: Add extra hints to the faulthandler module's stack + dumps that these are "upside down". -- Issue #18667: Add missing "HAVE_FCHOWNAT" symbol to posix._have_functions. - -- Issue #18368: PyOS_StdioReadline() no longer leaks memory when realloc() - fails. +Library +------- -- Issue #16741: Fix an error reporting in int(). ++- Issue #1575020: Fixed support of 24-bit wave files on big-endian platforms. + -- Issue #17899: Fix rare file descriptor leak in os.listdir(). +- Issue #19378: Fixed a number of cases in the dis module where the new + "file" parameter was not being honoured correctly -- Issue #18552: Check return value of PyArena_AddPyObject() in - obj2ast_object(). +- Issue #19378: Removed the "dis.Bytecode.show_info" method -- Issue #18560: Fix potential NULL pointer dereference in sum(). +- Issue #19378: Renamed the "dis.Bytecode.display_code" method to + "dis.Bytecode.dis" and converted it to returning a string rather than + printing output. -- Issue #15905: Fix theoretical buffer overflow in handling of sys.argv[0], - prefix and exec_prefix if the operation system does not obey MAXPATHLEN. +- Issue #19378: the "line_offset" parameter in the new "dis.get_instructions" + API has been renamed to "first_line" (and the default value and usage + changed accordingly). This should reduce confusion with the more common use + of "offset" in the dis docs to refer to bytecode offsets. -- Issue #18344: Fix potential ref-leaks in _bufferedreader_read_all(). +- Issue #18678: Corrected spwd struct member names in spwd module: + sp_nam->sp_namp, and sp_pwd->sp_pwdp. The old names are kept as extra + structseq members, for backward compatibility. -- Issue #17872: Fix a segfault in marshal.load() when input stream returns - more bytes than requested. +- Issue #6157: Fixed tkinter.Text.debug(). tkinter.Text.bbox() now raises + TypeError instead of TclError on wrong number of arguments. Original patch + by Guilherme Polo. -- Issue #18426: Fix NULL pointer dereference in C extension import when - PyModule_GetDef() returns an error. +- Issue #10197: Rework subprocess.get[status]output to use subprocess + functionality and thus to work on Windows. Patch by Nick Coghlan -- Issue #18328: Reorder ops in PyThreadState_Delete*() functions. Now the - tstate is first removed from TLS and then deallocated. +- Issue #6160: The bbox() method of tkinter.Spinbox now returns a tuple of + integers instead of a string. Based on patch by Guilherme Polo. -- Issue #18184: PyUnicode_FromFormat() and PyUnicode_FromFormatV() now raise - OverflowError when an argument of %c format is out of range. +- Issue #19403: contextlib.redirect_stdout is now reentrant -- Issue #18137: Detect integer overflow on precision in float.__format__() - and complex.__format__(). +- Issue #19286: Directories in ``package_data`` are no longer added to + the filelist, preventing failure outlined in the ticket. -- Issue #18183: Fix various unicode operations on strings with large unicode - codepoints. +- Issue #19480: HTMLParser now accepts all valid start-tag names as defined + by the HTML5 standard. -- Issue #18180: Fix ref leak in _PyImport_GetDynLoadWindows(). +- Issue #15114: The html.parser module now raises a DeprecationWarning when the + strict argument of HTMLParser or the HTMLParser.error method are used. -- Issue #18038: SyntaxError raised during compilation sources with illegal - encoding now always contains an encoding name. +- Issue #19410: Undo the special-casing removal of '' for + importlib.machinery.FileFinder. -- Issue #17644: Fix a crash in str.format when curly braces are used in square - brackets. +- Issue #19424: Fix the warnings module to accept filename containing surrogate + characters. -- Issue #17983: Raise a SyntaxError for a ``global __class__`` statement in a - class body. +- Issue #19435: Fix directory traversal attack on CGIHttpRequestHandler. -- Issue #17927: Frame objects kept arguments alive if they had been copied into - a cell, even if the cell was cleared. +- Issue #19227: Remove pthread_atfork() handler. The handler was added to + solve #18747 but has caused issues. -Library -------- +- Issue #19420: Fix reference leak in module initalization code of + _hashopenssl.c -- Issue #19395: Raise an exception when attempting to pickle a bz2 or lzma - compressor/decompressor object, rather than creating a pickle that would - cause a segfault when loaded and used. +- Issue #19329: Optimized compiling charsets in regular expressions. - Issue #19227: Try to fix deadlocks caused by re-seeding then OpenSSL pseudo-random number generator on fork().