• Ulan Degenbaev's avatar
    [heap] Fix black allocation. · 97b2a814
    Ulan Degenbaev authored
    This patch ensures that an object returned by AllocateRaw is marked
    black if black allocation starts during the object allocation.
    
    This fixes the following issue:
    1) Generated code requests allocation of size N for folded allocation.
    2) Runtime gets a free list node at address A of size N+M and sets up
       a linear allocation area with top = A+N and limit = A+N+M.
    3) Runtime invokes the allocation observer that starts incremental marking
       and start black allocation. The area [A+N, A+N+M) is marked black.
    4) Runtime returns a white object at address A as the allocation result.
    5) Generated code moves the top pointer to A and does bump pointer
       allocations of white objects from A to A+N+M.
    6) Object allocated new A+N can have the impossible marbit pattern.
    
    Bug: chromium:694255
    Change-Id: I09ceebc97a510fa5fe4ff20706bc46a99f8b7cf4
    Reviewed-on: https://chromium-review.googlesource.com/638338
    Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48005}
    97b2a814
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles 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...
.gitignore Loading commit data...
.gn 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...
Makefile Loading commit data...
Makefile.android 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...