Author: Edd Barrett <[email protected]>
Branch: asmmemmgr-for-code-only
Changeset: r86545:2cbba6120432
Date: 2016-08-26 10:16 +0100
http://bitbucket.org/pypy/pypy/changeset/2cbba6120432/
Log: Fix type errors exposed by backend tests.
diff --git a/rpython/jit/backend/llsupport/gcreftracer.py
b/rpython/jit/backend/llsupport/gcreftracer.py
--- a/rpython/jit/backend/llsupport/gcreftracer.py
+++ b/rpython/jit/backend/llsupport/gcreftracer.py
@@ -44,10 +44,12 @@
def make_boehm_tracer(array_base_addr, gcrefs):
# copy the addresses, but return 'gcrefs' as the object that must be
# kept alive
+ assert isinstance(array_base_addr, int)
+ array_base_addr_p = rffi.cast(rffi.CCHARP, array_base_addr)
n_gcrefs = len(gcrefs)
- set_pages_writable(array_base_addr, n_gcrefs * WORD)
+ set_pages_writable(array_base_addr_p, n_gcrefs * WORD)
for i in range(n_gcrefs):
p = rffi.cast(rffi.SIGNEDP, array_base_addr + i * WORD)
p[0] = rffi.cast(lltype.Signed, gcrefs[i])
- set_pages_executable(array_base_addr, n_gcrefs * WORD)
+ set_pages_executable(array_base_addr_p, n_gcrefs * WORD)
return gcrefs
diff --git a/rpython/rlib/rmmap.py b/rpython/rlib/rmmap.py
--- a/rpython/rlib/rmmap.py
+++ b/rpython/rlib/rmmap.py
@@ -727,14 +727,20 @@
return c_mprotect_safe(addr, size, prot)
def set_pages_executable(addr, size):
+ assert isinstance(addr, lltype._ptr)
+ assert isinstance(size, int)
rv = mprotect(addr, size, PROT_EXEC | PROT_READ)
- if rv < 0:
+ if int(rv) < 0:
+ from rpython.rlib import debug
debug.fatalerror_notb("set_pages_executable failed")
def set_pages_writable(addr, size):
+ assert isinstance(addr, lltype._ptr)
+ assert isinstance(size, int)
rv = mprotect(addr, size, PROT_WRITE | PROT_READ)
- if rv < 0:
- debug.fatalerror_notb("set_pages_executable failed")
+ if int(rv) < 0:
+ from rpython.rlib import debug
+ debug.fatalerror_notb("set_pages_writable failed")
def clear_large_memory_chunk_aligned(addr, map_size):
addr = rffi.cast(PTR, addr)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit