• kaznacheev@chromium.org's avatar
    Prevent modification of cached normalized maps. · cfbc1eed
    kaznacheev@chromium.org authored
    Finally sovles the problem that r5342 attempted to solve.
    When adding a stub to a map's code cache we need to make
    sure that this map is not used by object that do not need
    this stub.
    
    Existing solution had 2 flaws:
    1. It checked that the map is cached by asking the current context.
    If the object escaped into another context then NormalizedMapCache::Contains
    returns false negative.
    
    2. If a map gets evicted from the cache we should not try to modify it
    even though Contains returns false.
    
    This patch implements much less fragile solution of the same problem:
    A map now has a flag (is_shared) that is set once the map is added
    to a cache, stays set even after the cache eviction, and is cleared
    if the object goes back to fast mode.
    
    Added a regression test.
    
    Review URL: http://codereview.chromium.org/3472006
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    cfbc1eed
Name
Last commit
Last update
benchmarks Loading commit data...
include Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
ChangeLog Loading commit data...
LICENSE Loading commit data...
SConstruct Loading commit data...