diff options
author | Benjamin Peterson <benjamin@python.org> | 2010-01-13 03:49:50 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2010-01-13 03:49:50 (GMT) |
commit | 5efea0430caf2c6e066ae2f32e4c28f65d42d69a (patch) | |
tree | 49eec9ffecadf8911742b948c763b1b7ffcf447e | |
parent | ee5383da5a3c78acb8f4d1fa0898ba8fcbf67e41 (diff) | |
download | cpython-5efea0430caf2c6e066ae2f32e4c28f65d42d69a.zip cpython-5efea0430caf2c6e066ae2f32e4c28f65d42d69a.tar.gz cpython-5efea0430caf2c6e066ae2f32e4c28f65d42d69a.tar.bz2 |
use floor division where needed #7681
-rw-r--r-- | Lib/test/test_wave.py | 11 | ||||
-rw-r--r-- | Lib/wave.py | 4 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 15 insertions, 2 deletions
diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py index a7746fd..1bcaa242 100644 --- a/Lib/test/test_wave.py +++ b/Lib/test/test_wave.py @@ -1,6 +1,7 @@ from test.support import TESTFN, run_unittest import os import wave +import struct import unittest nchannels = 2 @@ -38,6 +39,16 @@ class TestWave(unittest.TestCase): self.assertEqual(nframes, self.f.getnframes()) self.assertEqual(self.f.readframes(nframes), output) + def test_issue7681(self): + self.f = wave.open(TESTFN, 'wb') + self.f.setnchannels(nchannels) + self.f.setsampwidth(sampwidth) + self.f.setframerate(framerate) + # Don't call setnframes, make _write_header divide to figure it out + output = b'\0' * nframes * nchannels * sampwidth + self.f.writeframes(output) + + def test_main(): run_unittest(TestWave) diff --git a/Lib/wave.py b/Lib/wave.py index 8455522..2fa9b6b 100644 --- a/Lib/wave.py +++ b/Lib/wave.py @@ -240,7 +240,7 @@ class Wave_read: data = array.array(_array_fmts[self._sampwidth]) nitems = nframes * self._nchannels if nitems * self._sampwidth > chunk.chunksize - chunk.size_read: - nitems = (chunk.chunksize - chunk.size_read) / self._sampwidth + nitems = (chunk.chunksize - chunk.size_read) // self._sampwidth data.fromfile(chunk.file.file, nitems) # "tell" data chunk how much was read chunk.size_read = chunk.size_read + nitems * self._sampwidth @@ -461,7 +461,7 @@ class Wave_write: def _write_header(self, initlength): self._file.write(b'RIFF') if not self._nframes: - self._nframes = initlength / (self._nchannels * self._sampwidth) + self._nframes = initlength // (self._nchannels * self._sampwidth) self._datalength = self._nframes * self._nchannels * self._sampwidth self._form_length_pos = self._file.tell() self._file.write(struct.pack('<l4s4slhhllhh4s', @@ -209,6 +209,8 @@ C-API Library ------- +- Issue #7681: Use floor division in appropiate places in the wave module. + - Issue #5372: Drop the reuse of .o files in Distutils' ccompiler (since Extension extra options may change the output without changing the .c file). Initial patch by Collin Winter. |