[pypy-svn] r17513 - pypy/dist/pypy/interpreter/astcompiler

ludal at codespeak.net ludal at codespeak.net
Mon Sep 12 23:25:52 CEST 2005


Author: ludal
Date: Mon Sep 12 23:25:51 2005
New Revision: 17513

Modified:
   pypy/dist/pypy/interpreter/astcompiler/pyassem.py
Log:
more annotation/rtyping fixes


Modified: pypy/dist/pypy/interpreter/astcompiler/pyassem.py
==============================================================================
--- pypy/dist/pypy/interpreter/astcompiler/pyassem.py	(original)
+++ pypy/dist/pypy/interpreter/astcompiler/pyassem.py	Mon Sep 12 23:25:51 2005
@@ -327,9 +327,9 @@
 def dfs_postorder(b, seen):
     """Depth-first search of tree rooted at b, return in postorder"""
     order = []
-    seen[b] = b
+    seen[b.bid] = b
     for c in b.get_children():
-        if c in seen:
+        if c.bid in seen:
             continue
         order = order + dfs_postorder(c, seen)
     order.append(b)
@@ -775,7 +775,7 @@
                 else:
                     print "x",opname, t.getArg()
             if not t.has_arg:
-                lnotab.addCode(self.opnum[opname])
+                lnotab.addCode1(self.opnum[opname])
             else:
                 assert isinstance(t, InstrInt)
                 oparg = t.intval
@@ -784,7 +784,7 @@
                     continue
                 hi, lo = twobyte(oparg)
                 try:
-                    lnotab.addCode(self.opnum[opname], lo, hi)
+                    lnotab.addCode3(self.opnum[opname], lo, hi)
                 except ValueError:
                     if self._debug:
                         print opname, oparg
@@ -882,10 +882,15 @@
         self.lastoff = 0
         self.lnotab = []
 
-    def addCode(self, *args):
-        for arg in args:
-            self.code.append(chr(arg))
-        self.codeOffset = self.codeOffset + len(args)
+    def addCode1(self, op ):
+        self.code.append(chr(op))
+        self.codeOffset = self.codeOffset + 1
+
+    def addCode3(self, op, hi, lo):
+        self.code.append(chr(op))
+        self.code.append(chr(hi))
+        self.code.append(chr(lo))
+        self.codeOffset = self.codeOffset + 3
 
     def nextLine(self, lineno):
         if self.firstline == 0:



More information about the Pypy-commit mailing list