Author: Armin Rigo <ar...@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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit