[pypy-svn] r36821 - pypy/dist/pypy/jit/codegen/ppc
mwh at codespeak.net
mwh at codespeak.net
Tue Jan 16 16:59:46 CET 2007
Author: mwh
Date: Tue Jan 16 16:59:45 2007
New Revision: 36821
Modified:
pypy/dist/pypy/jit/codegen/ppc/rgenop.py
Log:
fix shallow failure of test_red_varsized_struct
Modified: pypy/dist/pypy/jit/codegen/ppc/rgenop.py
==============================================================================
--- pypy/dist/pypy/jit/codegen/ppc/rgenop.py (original)
+++ pypy/dist/pypy/jit/codegen/ppc/rgenop.py Tue Jan 16 16:59:45 2007
@@ -258,7 +258,7 @@
return gv_result
def genop_getsubstruct(self, fieldtoken, gv_ptr):
- return self._arg_imm_op(gv_ptr, IntConst(fieldtoken), _PPC.addi)
+ return self._arg_imm_op(gv_ptr, IntConst(fieldtoken[0]), _PPC.addi)
def genop_getarrayitem(self, arraytoken, gv_ptr, gv_index):
_, _, itemsize = arraytoken
@@ -971,7 +971,12 @@
@staticmethod
@specialize.memo()
def fieldToken(T, name):
- return (llmemory.offsetof(T, name), llmemory.sizeof(getattr(T, name)))
+ FIELD = getattr(T, name)
+ if isinstance(FIELD, lltype.ContainerType):
+ fieldsize = 0 # not useful for getsubstruct
+ else:
+ fieldsize = llmemory.sizeof(FIELD)
+ return (llmemory.offsetof(T, name), fieldsize)
@staticmethod
@specialize.memo()
More information about the Pypy-commit
mailing list