[pypy-commit] pypy inline-dict-ops: fix various tests
alex_gaynor
noreply at buildbot.pypy.org
Fri Oct 21 01:28:30 CEST 2011
Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch: inline-dict-ops
Changeset: r48287:43a10843f902
Date: 2011-10-20 19:28 -0400
http://bitbucket.org/pypy/pypy/changeset/43a10843f902/
Log: fix various tests
diff --git a/pypy/jit/backend/llsupport/gc.py b/pypy/jit/backend/llsupport/gc.py
--- a/pypy/jit/backend/llsupport/gc.py
+++ b/pypy/jit/backend/llsupport/gc.py
@@ -107,6 +107,8 @@
def malloc_array(basesize, itemsize, ofs_length, num_elem):
size = basesize + itemsize * num_elem
res = self.funcptr_for_new(size)
+ if not res:
+ return res
rffi.cast(rffi.CArrayPtr(lltype.Signed), res)[ofs_length/WORD] = num_elem
return res
self.malloc_array = malloc_array
diff --git a/pypy/jit/backend/x86/assembler.py b/pypy/jit/backend/x86/assembler.py
--- a/pypy/jit/backend/x86/assembler.py
+++ b/pypy/jit/backend/x86/assembler.py
@@ -1506,7 +1506,6 @@
def genop_newstr(self, op, arglocs, result_loc):
assert result_loc is eax
- assert self.malloc_str_func_addr
self.call(self.malloc_str_func_addr, arglocs, eax)
self.propagate_memoryerror_if_eax_is_null()
diff --git a/pypy/jit/backend/x86/test/test_runner.py b/pypy/jit/backend/x86/test/test_runner.py
--- a/pypy/jit/backend/x86/test/test_runner.py
+++ b/pypy/jit/backend/x86/test/test_runner.py
@@ -72,19 +72,13 @@
allocs = [None]
all = []
+ orig_new = self.cpu.gc_ll_descr.funcptr_for_new
def f(size):
allocs.insert(0, size)
- buf = ctypes.create_string_buffer(size)
- all.append(buf)
- return ctypes.cast(buf, ctypes.c_void_p).value
- func = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_int)(f)
- addr = ctypes.cast(func, ctypes.c_void_p).value
- # ctypes produces an unsigned value. We need it to be signed for, eg,
- # relative addressing to work properly.
- addr = rffi.cast(lltype.Signed, addr)
+ return orig_new(size)
self.cpu.assembler.setup_once()
- self.cpu.assembler.malloc_func_addr = addr
+ self.cpu.gc_ll_descr.funcptr_for_new = f
ofs = symbolic.get_field_token(rstr.STR, 'chars', False)[0]
res = self.execute_operation(rop.NEWSTR, [ConstInt(7)], 'ref')
More information about the pypy-commit
mailing list