Go to file
kaznacheev@chromium.org cfbc1eed9c Prevent modification of cached normalized maps.
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
2010-09-24 08:18:33 +00:00
benchmarks Changed the RegExp benchmark to exercise the regexp engine on different 2010-09-20 10:36:21 +00:00
include Add support for abortion in v8::OutputStream. 2010-09-14 15:11:24 +00:00
samples Add stack traces to mjsunit tests. 2010-05-14 10:00:24 +00:00
src Prevent modification of cached normalized maps. 2010-09-24 08:18:33 +00:00
test Prevent modification of cached normalized maps. 2010-09-24 08:18:33 +00:00
tools Address some issues with detecting the architecture. See 2010-08-31 08:05:33 +00:00
.gitignore Add '.cpplint-cache' to ignore lists for SVN and Git. This change also sets 'ignore' property on '.', although this change isn't visible in Rietveld. 2009-12-11 09:01:38 +00:00
AUTHORS Replace 2 ARM ldr instructions with one ldrd in the code generated 2010-09-15 10:22:55 +00:00
ChangeLog Prepare push to trunk. Now working on version 2.4.6. 2010-09-22 09:35:56 +00:00
LICENSE Get rid of duplicate LICENSE entry for the Valgrind 2009-09-27 09:33:11 +00:00
SConstruct Give correct value ranges to enumeration types used as opaque types. 2010-08-16 17:14:34 +00:00