[pypy-commit] pypy py3k-memoryview: Fix translation.
mjacob
noreply at buildbot.pypy.org
Wed Feb 25 13:38:00 CET 2015
Author: Manuel Jacob <me at manueljacob.de>
Branch: py3k-memoryview
Changeset: r76130:b413d6c02268
Date: 2015-02-25 13:37 +0100
http://bitbucket.org/pypy/pypy/changeset/b413d6c02268/
Log: Fix translation.
diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -25,6 +25,8 @@
reds=['items', 'w_iterator'])
+# It seems there's no way to do it without top-level-functions.
+
@specialize.memo()
def _does_override_buffer_w(type):
return type.buffer_w != W_Root.buffer_w
@@ -33,6 +35,18 @@
def _does_override_buffer_w_ex(type):
return type.buffer_w_ex != W_Root.buffer_w_ex
+ at specialize.argtype(0)
+def W_Root_buffer_w(self, space, flags):
+ if _does_override_buffer_w_ex(self.__class__):
+ return self.buffer_w_ex(space, flags)[0]
+ return self._buffer(space, flags).buffer_w(space, flags)
+
+ at specialize.argtype(0)
+def W_Root_buffer_w_ex(self, space, flags):
+ if _does_override_buffer_w(self.__class__):
+ return self.buffer_w(space, flags), 'B', 1
+ return self._buffer(space, flags).buffer_w_ex(space, flags)
+
class W_Root(object):
"""This is the abstract root class of all wrapped objects that live
@@ -203,17 +217,11 @@
def immutable_unique_id(self, space):
return None
- @specialize.argtype(0)
def buffer_w(self, space, flags):
- if _does_override_buffer_w_ex(self.__class__):
- return self.buffer_w_ex(space, flags)[0]
- return self._buffer(space, flags).buffer_w(space, flags)
+ return W_Root_buffer_w(self, space, flags)
- @specialize.argtype(0)
def buffer_w_ex(self, space, flags):
- if _does_override_buffer_w(self.__class__):
- return self.buffer_w(space, flags), 'B', 1
- return self._buffer(space, flags).buffer_w_ex(space, flags)
+ return W_Root_buffer_w_ex(self, space, flags)
def _buffer(self, space, flags):
w_impl = space.lookup(self, '__buffer__')
More information about the pypy-commit
mailing list