[pypy-svn] r65981 - pypy/branch/pyjitpl5/pypy/jit/tl/spli

benjamin at codespeak.net benjamin at codespeak.net
Fri Jun 26 01:14:26 CEST 2009


Author: benjamin
Date: Fri Jun 26 01:14:25 2009
New Revision: 65981

Modified:
   pypy/branch/pyjitpl5/pypy/jit/tl/spli/interpreter.py
   pypy/branch/pyjitpl5/pypy/jit/tl/spli/objects.py
Log:
add as_interp_class(); shut up rtyper warnings

Modified: pypy/branch/pyjitpl5/pypy/jit/tl/spli/interpreter.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/tl/spli/interpreter.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/tl/spli/interpreter.py	Fri Jun 26 01:14:25 2009
@@ -1,6 +1,6 @@
 import os
 from pypy.tool import stdlib_opcode as opcode
-from pypy.jit.tl.spli import objects
+from pypy.jit.tl.spli import objects, pycode
 from pypy.tool.stdlib_opcode import unrolling_opcode_descs
 from pypy.tool.stdlib_opcode import opcode_method_names
 from pypy.rlib.unroll import unrolling_iterable
@@ -183,7 +183,8 @@
         return next_instr
 
     def MAKE_FUNCTION(self, _, next_instr, code):
-        func = objects.Function(self.pop(), self.globs)
+        func_code = self.pop().as_interp_class(pycode.Code)
+        func = objects.Function(func_code, self.globs)
         self.push(func)
         return next_instr
 

Modified: pypy/branch/pyjitpl5/pypy/jit/tl/spli/objects.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/tl/spli/objects.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/tl/spli/objects.py	Fri Jun 26 01:14:25 2009
@@ -69,6 +69,11 @@
     def is_true(self):
         raise W_TypeError
 
+    def as_interp_class(self, cls):
+        if not isinstance(self, cls):
+            raise W_TypeError
+        return self
+
 
 class Bool(SPLIObject):
 



More information about the Pypy-commit mailing list