[pypy-commit] pypy py3k: Redo 992e29624c5f, this time hopefully right -- it's a bit of a mess to call
arigo
noreply at buildbot.pypy.org
Mon Feb 24 03:49:54 CET 2014
Author: Armin Rigo <arigo at tunes.org>
Branch: py3k
Changeset: r69326:f629c3ae62be
Date: 2014-02-22 08:07 +0100
http://bitbucket.org/pypy/pypy/changeset/f629c3ae62be/
Log: Redo 992e29624c5f, this time hopefully right -- it's a bit of a mess
to call c_mmap_safe() from two different points in translation
(grafted from b771fb9117d277848fd63d41db349e53a635397a)
diff --git a/rpython/rlib/rmmap.py b/rpython/rlib/rmmap.py
--- a/rpython/rlib/rmmap.py
+++ b/rpython/rlib/rmmap.py
@@ -10,6 +10,7 @@
from rpython.rtyper.lltypesystem import rffi, lltype
from rpython.rlib import rposix
from rpython.translator.tool.cbuild import ExternalCompilationInfo
+from rpython.rlib.objectmodel import we_are_translated
from rpython.rlib.nonconst import NonConstant
from rpython.rlib.rarithmetic import intmask
@@ -675,14 +676,20 @@
return m
def alloc_hinted(hintp, map_size):
- flags = NonConstant(MAP_PRIVATE | MAP_ANONYMOUS)
- prot = NonConstant(PROT_EXEC | PROT_READ | PROT_WRITE)
+ flags = MAP_PRIVATE | MAP_ANONYMOUS
+ prot = PROT_EXEC | PROT_READ | PROT_WRITE
+ if we_are_translated():
+ flags = NonConstant(flags)
+ prot = NonConstant(prot)
return c_mmap_safe(hintp, map_size, prot, flags, -1, 0)
def clear_large_memory_chunk_aligned(addr, map_size):
addr = rffi.cast(PTR, addr)
- flags = NonConstant(MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS)
- prot = NonConstant(PROT_READ | PROT_WRITE)
+ flags = MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS
+ prot = PROT_READ | PROT_WRITE
+ if we_are_translated():
+ flags = NonConstant(flags)
+ prot = NonConstant(prot)
res = c_mmap_safe(addr, map_size, prot, flags, -1, 0)
return res == addr
More information about the pypy-commit
mailing list