[pypy-svn] r25454 - in pypy/dist/pypy/translator/c: . test
mwh at codespeak.net
mwh at codespeak.net
Thu Apr 6 17:41:02 CEST 2006
Author: mwh
Date: Thu Apr 6 17:41:01 2006
New Revision: 25454
Modified:
pypy/dist/pypy/translator/c/stacklesstransform.py
pypy/dist/pypy/translator/c/test/test_stacklesstransform.py
Log:
add a header to the saved frame states.
Modified: pypy/dist/pypy/translator/c/stacklesstransform.py
==============================================================================
--- pypy/dist/pypy/translator/c/stacklesstransform.py (original)
+++ pypy/dist/pypy/translator/c/stacklesstransform.py Thu Apr 6 17:41:01 2006
@@ -25,6 +25,10 @@
else:
raise Exception("don't know about %r" % (T,))
+state_header = lltype.Struct('state_header',
+ ('f_back', lltype.Ptr(lltype.ForwardReference())),
+ ('signed', lltype.Signed))
+state_header.f_back.TO.become(state_header)
class StacklessTransfomer(object):
def __init__(self, translator):
@@ -47,7 +51,9 @@
for i, k in enumerate(key):
for j in range(k):
fields.append(('state_%s_%d'%(STORAGE_FIELDS[i], j), STORAGE_TYPES[i]))
- T = lltype.Struct("state_%d_%d_%d_%d"%tuple(key), *fields)
+ T = lltype.Struct("state_%d_%d_%d_%d"%tuple(key),
+ ('header', state_header),
+ *fields)
self.frametypes[key] = T
return T
Modified: pypy/dist/pypy/translator/c/test/test_stacklesstransform.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_stacklesstransform.py (original)
+++ pypy/dist/pypy/translator/c/test/test_stacklesstransform.py Thu Apr 6 17:41:01 2006
@@ -14,7 +14,8 @@
ft4vars = st.frame_type_for_vars
s1 = ft4vars([signed])
- assert len(s1._flds) == 1
+ assert 'header' in s1._flds
+ assert len(s1._flds) == 2
s2_1 = ft4vars([signed, ptr])
s2_2 = ft4vars([ptr, signed])
More information about the Pypy-commit
mailing list