Author: Alex Gaynor <alex.gay...@gmail.com>
Branch: stdlib-2.7.11
Changeset: r83190:23b3a3180df8
Date: 2016-03-20 10:01 -0400
http://bitbucket.org/pypy/pypy/changeset/23b3a3180df8/

Log:    Added some fixes for audioop

diff --git a/lib_pypy/audioop.py b/lib_pypy/audioop.py
--- a/lib_pypy/audioop.py
+++ b/lib_pypy/audioop.py
@@ -553,9 +553,14 @@
 def adpcm2lin(cp, size, state):
     _check_size(size)
     if state is None:
-        state = (0, 0)
+        valpred = 0
+        index = 0
+    else:
+        valpred, index = state
+        # XXX: len(stepsizeTable) = 89
+        if valpred >= 0x8000 or valpred < -0x8000 or index >= 89:
+            raise ValueError("bad state")
     rv = ffi.new("unsigned char[]", len(cp) * size * 2)
-    state_ptr = ffi.new("int[]", state)
+    state_ptr = ffi.new("int[]", [valpred, index])
     lib.adcpm2lin(rv, cp, len(cp), size, state_ptr)
     return ffi.buffer(rv)[:], tuple(state_ptr)
-
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to