[Python-checkins] r86558 - in python/branches/release27-maint: Lib/wave.py Misc/NEWS

georg.brandl python-checkins at python.org
Sat Nov 20 12:29:09 CET 2010


Author: georg.brandl
Date: Sat Nov 20 12:29:09 2010
New Revision: 86558

Log:
Merged revisions 85970 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85970 | georg.brandl | 2010-10-30 10:29:28 +0200 (Sa, 30 Okt 2010) | 1 line
  
  #10198: fix duplicate header when writeframes() is called with an empty string.
........


Modified:
   python/branches/release27-maint/   (props changed)
   python/branches/release27-maint/Lib/wave.py
   python/branches/release27-maint/Misc/NEWS

Modified: python/branches/release27-maint/Lib/wave.py
==============================================================================
--- python/branches/release27-maint/Lib/wave.py	(original)
+++ python/branches/release27-maint/Lib/wave.py	Sat Nov 20 12:29:09 2010
@@ -319,6 +319,7 @@
         self._nframeswritten = 0
         self._datawritten = 0
         self._datalength = 0
+        self._headerwritten = False
 
     def __del__(self):
         self.close()
@@ -449,7 +450,7 @@
     #
 
     def _ensure_header_written(self, datasize):
-        if not self._datawritten:
+        if not self._headerwritten:
             if not self._nchannels:
                 raise Error, '# channels not specified'
             if not self._sampwidth:
@@ -459,6 +460,7 @@
             self._write_header(datasize)
 
     def _write_header(self, initlength):
+        assert not self._headerwritten
         self._file.write('RIFF')
         if not self._nframes:
             self._nframes = initlength / (self._nchannels * self._sampwidth)
@@ -472,8 +474,10 @@
             self._sampwidth * 8, 'data'))
         self._data_length_pos = self._file.tell()
         self._file.write(struct.pack('<l', self._datalength))
+        self._headerwritten = True
 
     def _patchheader(self):
+        assert self._headerwritten
         if self._datawritten == self._datalength:
             return
         curpos = self._file.tell()

Modified: python/branches/release27-maint/Misc/NEWS
==============================================================================
--- python/branches/release27-maint/Misc/NEWS	(original)
+++ python/branches/release27-maint/Misc/NEWS	Sat Nov 20 12:29:09 2010
@@ -91,6 +91,9 @@
 - Issue #4471: Properly shutdown socket in IMAP.shutdown().  Patch by
   Lorenzo M. Catucci.
 
+- Issue #10198: fix duplicate header written to wave files when writeframes()
+  is called without data.
+
 - Issue #10126: Fix distutils' test_build when Python was built with
   --enable-shared.
   


More information about the Python-checkins mailing list