Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Issue 10535004: ClearNonLiveTransitions has to hold on to non-map values. (Closed)

Created:
8 years, 6 months ago by Toon Verwaest
Modified:
8 years, 6 months ago
CC:
v8-dev
Visibility:
Public.

Description

ClearNonLiveTransitions has to hold on to non-map values. This ensures that we don't accidentally throw away getters and/or setters that are still needed. To make sure the bug gets triggered, we have to construct a situation where the map is on the live side of a live->non-live transition. This ensures that the map is passed to ClearNonLiveTransitions. BUG=v8:2163 TEST=test/mjsunit/regress/regress-2163.js Committed: https://code.google.com/p/v8/source/detail?r=11713

Patch Set 1 #

Total comments: 2

Patch Set 2 : Ensure we throw away empty element transition arrays, cfr Michael's comment #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+102 lines, -16 lines) Patch
M src/objects.cc View 1 3 chunks +31 lines, -15 lines 8 comments Download
M test/mjsunit/accessor-map-sharing.js View 1 chunk +1 line, -1 line 0 comments Download
A test/mjsunit/regress/regress-2163.js View 1 chunk +70 lines, -0 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Toon Verwaest
8 years, 6 months ago (2012-06-05 09:05:20 UTC) #1
Michael Starzinger
Nice catch! Small drive-by comment. https://chromiumcodereview.appspot.com/10535004/diff/1/src/objects.cc File src/objects.cc (right): https://chromiumcodereview.appspot.com/10535004/diff/1/src/objects.cc#newcode7403 src/objects.cc:7403: *keep_entry = true; I ...
8 years, 6 months ago (2012-06-05 09:12:48 UTC) #2
Toon Verwaest
Addressed Michael's comment. Please take a look. https://chromiumcodereview.appspot.com/10535004/diff/1/src/objects.cc File src/objects.cc (right): https://chromiumcodereview.appspot.com/10535004/diff/1/src/objects.cc#newcode7403 src/objects.cc:7403: *keep_entry = ...
8 years, 6 months ago (2012-06-05 10:29:16 UTC) #3
Sven Panne
LGTM with nits. http://codereview.chromium.org/10535004/diff/4001/src/objects.cc File src/objects.cc (right): http://codereview.chromium.org/10535004/diff/4001/src/objects.cc#newcode7403 src/objects.cc:7403: if (Marking::MarkBitFrom(map).Get()) { Nit: To be ...
8 years, 6 months ago (2012-06-05 10:52:01 UTC) #4
Toon Verwaest
8 years, 6 months ago (2012-06-05 11:23:27 UTC) #5
http://codereview.chromium.org/10535004/diff/4001/src/objects.cc
File src/objects.cc (right):

http://codereview.chromium.org/10535004/diff/4001/src/objects.cc#newcode7403
src/objects.cc:7403: if (Marking::MarkBitFrom(map).Get()) {
On 2012/06/05 10:52:01, Sven Panne wrote:
> Nit: To be more consistent with the rest of the code, remove the braces and
put
> the return on the same line.

Done.

http://codereview.chromium.org/10535004/diff/4001/src/objects.cc#newcode7422
src/objects.cc:7422: bool keep_entry = false;
On 2012/06/05 10:52:01, Sven Panne wrote:
> Move the initialization to the CALLBACKS case, this is more local.

Done.

http://codereview.chromium.org/10535004/diff/4001/src/objects.cc#newcode7438
src/objects.cc:7438: if (ClearBackPointer(heap, array->get(j))) {
On 2012/06/05 10:52:01, Sven Panne wrote:
> Just use "target", it's cleaner... ;-)

Done.

http://codereview.chromium.org/10535004/diff/4001/src/objects.cc#newcode7453
src/objects.cc:7453: Object* setter = accessors->setter();
On 2012/06/05 10:52:01, Sven Panne wrote:
> Move this down before "if (setter->IsMap())...", again making everything as
> local as possible.

Done.

Powered by Google App Engine
This is Rietveld 408576698