[pypy-svn] r52067 - pypy/branch/jit-refactoring/pypy/jit/timeshifter

arigo at codespeak.net arigo at codespeak.net
Sun Mar 2 20:18:07 CET 2008


Author: arigo
Date: Sun Mar  2 20:18:06 2008
New Revision: 52067

Modified:
   pypy/branch/jit-refactoring/pypy/jit/timeshifter/vdict.py
   pypy/branch/jit-refactoring/pypy/jit/timeshifter/vlist.py
Log:
Sprinkle more of these checks.  Adding them by metaprogramming
is messy.


Modified: pypy/branch/jit-refactoring/pypy/jit/timeshifter/vdict.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/jit/timeshifter/vdict.py	(original)
+++ pypy/branch/jit-refactoring/pypy/jit/timeshifter/vdict.py	Sun Mar  2 20:18:06 2008
@@ -268,6 +268,7 @@
     return oopspecdesc.typedesc.factory()
 
 def oop_dict_setitem(jitstate, oopspecdesc, deepfrozen, selfbox, keybox, valuebox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, AbstractVirtualDict) and keybox.is_constant():
         content.setitem(keybox, valuebox)
@@ -275,6 +276,7 @@
         oopspecdesc.residual_call(jitstate, [selfbox, keybox, valuebox])
 
 def oop_dict_getitem(jitstate, oopspecdesc, deepfrozen, selfbox, keybox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, AbstractVirtualDict) and keybox.is_constant():
         try:
@@ -287,6 +289,7 @@
 oop_dict_getitem.couldfold = True
 
 def oop_dict_contains(jitstate, oopspecdesc, deepfrozen, selfbox, keybox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, AbstractVirtualDict) and keybox.is_constant():
         try:

Modified: pypy/branch/jit-refactoring/pypy/jit/timeshifter/vlist.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/jit/timeshifter/vlist.py	(original)
+++ pypy/branch/jit-refactoring/pypy/jit/timeshifter/vlist.py	Sun Mar  2 20:18:06 2008
@@ -274,6 +274,7 @@
     return oopspecdesc.residual_call(jitstate, [lengthbox, itembox])
 
 def oop_list_copy(jitstate, oopspecdesc, deepfrozen, selfbox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList):
         copybox = oopspecdesc.typedesc.factory(0, None)
@@ -285,6 +286,7 @@
         return oopspecdesc.residual_call(jitstate, [selfbox])
 
 def oop_list_len(jitstate, oopspecdesc, deepfrozen, selfbox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList):
         return rvalue.ll_fromvalue(jitstate, len(content.item_boxes))
@@ -294,6 +296,7 @@
 oop_list_len.couldfold = True
 
 def oop_list_nonzero(jitstate, oopspecdesc, deepfrozen, selfbox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList):
         return rvalue.ll_fromvalue(jitstate, bool(content.item_boxes))
@@ -303,6 +306,7 @@
 oop_list_nonzero.couldfold = True
 
 def oop_list_append(jitstate, oopspecdesc, deepfrozen, selfbox, itembox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList):
         content.item_boxes.append(itembox)
@@ -310,6 +314,7 @@
         oopspecdesc.residual_call(jitstate, [selfbox, itembox])
 
 def oop_list_insert(jitstate, oopspecdesc, deepfrozen, selfbox, indexbox, itembox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList) and indexbox.is_constant():
         index = rvalue.ll_getvalue(indexbox, lltype.Signed)
@@ -320,6 +325,7 @@
         oopspecdesc.residual_call(jitstate, [selfbox, indexbox, itembox])
 
 def oop_list_concat(jitstate, oopspecdesc, deepfrozen, selfbox, otherbox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList):
         assert isinstance(otherbox, rvalue.PtrRedBox)
@@ -334,6 +340,7 @@
     return oopspecdesc.residual_call(jitstate, [selfbox, otherbox])
 
 def oop_list_pop(jitstate, oopspecdesc, deepfrozen, selfbox, indexbox=None):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if indexbox is None:
         if isinstance(content, VirtualList):
@@ -354,6 +361,7 @@
     return oopspecdesc.residual_call(jitstate, [selfbox, indexbox])
 
 def oop_list_reverse(jitstate, oopspecdesc, deepfrozen, selfbox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList):
         content.item_boxes.reverse()
@@ -361,6 +369,7 @@
         oopspecdesc.residual_call(jitstate, [selfbox])
 
 def oop_list_getitem(jitstate, oopspecdesc, deepfrozen, selfbox, indexbox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList) and indexbox.is_constant():
         index = rvalue.ll_getvalue(indexbox, lltype.Signed)
@@ -374,6 +383,7 @@
 oop_list_getitem.couldfold = True
 
 def oop_list_setitem(jitstate, oopspecdesc, deepfrozen, selfbox, indexbox, itembox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList) and indexbox.is_constant():
         index = rvalue.ll_getvalue(indexbox, lltype.Signed)
@@ -385,6 +395,7 @@
         oopspecdesc.residual_call(jitstate, [selfbox, indexbox, itembox])
 
 def oop_list_delitem(jitstate, oopspecdesc, deepfrozen, selfbox, indexbox):
+    assert isinstance(selfbox, rvalue.PtrRedBox)
     content = selfbox.content
     if isinstance(content, VirtualList) and indexbox.is_constant():
         index = rvalue.ll_getvalue(indexbox, lltype.Signed)



More information about the Pypy-commit mailing list