[pypy-svn] r28394 - pypy/dist/pypy/translator/stackless

mwh at codespeak.net mwh at codespeak.net
Tue Jun 6 17:40:39 CEST 2006


Author: mwh
Date: Tue Jun  6 17:40:38 2006
New Revision: 28394

Modified:
   pypy/dist/pypy/translator/stackless/transform.py
Log:
move some frame typer hacking into a method on the frame typer.


Modified: pypy/dist/pypy/translator/stackless/transform.py
==============================================================================
--- pypy/dist/pypy/translator/stackless/transform.py	(original)
+++ pypy/dist/pypy/translator/stackless/transform.py	Tue Jun  6 17:40:38 2006
@@ -125,6 +125,15 @@
             self.frametypes[key] = T
         return T, fieldnames
 
+    def ensure_frame_type_for_types(self, frame_type):
+        key, fieldnames = self._key_fieldnames_for_types(
+            [frame_type._flds[n] for n in frame_type._names[1:]])
+        assert len(fieldnames) <= 1, "nasty field ordering issues need to be solved XXX mwh, pedronis"
+        if key in self.frametypes:
+            assert self.frametypes[key] is frame_type
+        self.frametypes[key] = frame_type
+        
+
 class StacklessAnalyzer(graphanalyze.GraphAnalyzer):
     def __init__(self, translator, unwindtype, stackless_gc):
         graphanalyze.GraphAnalyzer.__init__(self, translator)
@@ -331,12 +340,7 @@
                     label, len(self.masterarray1) + i)
                 frame_type = restartinfo.frame_types[i]
                 self.explicit_resume_point_data[label] = frame_type
-                key, fieldnames = self.frametyper._key_fieldnames_for_types(
-                    [frame_type._flds[n] for n in frame_type._names[1:]])
-                assert len(fieldnames) <= 1, "nasty field ordering issues need to be solved XXX mwh, pedronis"
-                if key in self.frametyper.frametypes:
-                    assert self.frametyper.frametypes[key] is frame_type
-                self.frametyper.frametypes[key] = frame_type
+                self.frametyper.ensure_frame_type_for_types(frame_type)
             self.register_restart_info(restartinfo)
 
     def transform_all(self):



More information about the Pypy-commit mailing list