• Dan Elphick's avatar
    [heap] Mark RO_SPACE as read-only after deserialization · 40f1aaf3
    Dan Elphick authored
    Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter
    is only usable with ReadOnlySpace::WritableScope to avoid the space
    being left writable). MarkAsReadOnly updates the high water mark and
    makes several previously mutating methods into no-ops.
    
    Moves some writes to immutable objects out of the bootstrapper to
    setup-heap-internal so they don't write to a read-only page.
    
    Also avoid writing hashes to strings that already have the value set as
    that invariably means writing to the "0" and "1" constant strings in
    RO_SPACE.
    
    Before serialization, it makes RO_SPACE writable again so that any
    padding can be cleared before writing it.
    
    Bug: v8:7464
    Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
    Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3
    Reviewed-on: https://chromium-review.googlesource.com/1014128
    Commit-Queue: Dan Elphick <delphick@chromium.org>
    Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
    Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#52943}
    40f1aaf3
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...