mirror of
https://github.com/python/cpython.git
synced 2025-08-22 09:45:06 +00:00
Issue #18919: If the close() method of a writer in the sunau or wave module
failed, second invocation of close() and destructor no more raise an exception.
This commit is contained in:
parent
5c01d99c12
commit
e23b2d06c7
3 changed files with 22 additions and 13 deletions
19
Lib/sunau.py
19
Lib/sunau.py
|
@ -414,14 +414,17 @@ class Au_write:
|
||||||
self._patchheader()
|
self._patchheader()
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self._ensure_header_written()
|
if self._file:
|
||||||
if self._nframeswritten != self._nframes or \
|
try:
|
||||||
self._datalength != self._datawritten:
|
self._ensure_header_written()
|
||||||
self._patchheader()
|
if self._nframeswritten != self._nframes or \
|
||||||
self._file.flush()
|
self._datalength != self._datawritten:
|
||||||
if self._opened and self._file:
|
self._patchheader()
|
||||||
self._file.close()
|
self._file.flush()
|
||||||
self._file = None
|
if self._opened and self._file:
|
||||||
|
self._file.close()
|
||||||
|
finally:
|
||||||
|
self._file = None
|
||||||
|
|
||||||
#
|
#
|
||||||
# private methods
|
# private methods
|
||||||
|
|
12
Lib/wave.py
12
Lib/wave.py
|
@ -436,11 +436,13 @@ class Wave_write:
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
if self._file:
|
if self._file:
|
||||||
self._ensure_header_written(0)
|
try:
|
||||||
if self._datalength != self._datawritten:
|
self._ensure_header_written(0)
|
||||||
self._patchheader()
|
if self._datalength != self._datawritten:
|
||||||
self._file.flush()
|
self._patchheader()
|
||||||
self._file = None
|
self._file.flush()
|
||||||
|
finally:
|
||||||
|
self._file = None
|
||||||
if self._i_opened_the_file:
|
if self._i_opened_the_file:
|
||||||
self._i_opened_the_file.close()
|
self._i_opened_the_file.close()
|
||||||
self._i_opened_the_file = None
|
self._i_opened_the_file = None
|
||||||
|
|
|
@ -76,6 +76,10 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #18919: If the close() method of a writer in the sunau or wave module
|
||||||
|
failed, second invocation of close() and destructor no more raise an
|
||||||
|
exception.
|
||||||
|
|
||||||
- Issue #19131: The aifc module now correctly reads and writes sampwidth of
|
- Issue #19131: The aifc module now correctly reads and writes sampwidth of
|
||||||
compressed streams.
|
compressed streams.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue