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

Issue 100344: More special handling of the symbol table during garbage collection.... (Closed)

Created:
11 years, 7 months ago by Kevin Millikin (Chromium)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

More special handling of the symbol table during garbage collection. Mark all objects reachable from the symbols except the symbols themselves as live (and reachable from strong roots). This ensures that if the symbol itself remains alive for any reason, and if it was a sliced string or cons string backed by an external string, then the external string will be strongly reachable and therefore not get a weak reference callback. Committed: http://code.google.com/p/v8/source/detail?r=1846

Patch Set 1 #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+65 lines, -19 lines) Patch
M src/mark-compact.h View 3 chunks +18 lines, -2 lines 0 comments Download
M src/mark-compact.cc View 2 chunks +47 lines, -17 lines 4 comments Download

Messages

Total messages: 4 (0 generated)
Kevin Millikin (Chromium)
11 years, 7 months ago (2009-05-04 17:26:18 UTC) #1
Mads Ager (chromium)
LGTM
11 years, 7 months ago (2009-05-04 17:51:58 UTC) #2
iposva
Drive by comments about this implementation. We should probably take this now to roll out ...
11 years, 7 months ago (2009-05-04 17:54:46 UTC) #3
Kevin Millikin (Chromium)
11 years, 7 months ago (2009-05-04 18:34:52 UTC) #4
http://codereview.chromium.org/100344/diff/1/3
File src/mark-compact.cc (right):

http://codereview.chromium.org/100344/diff/1/3#newcode588
Line 588: // not receive a weak reference callback.
I don't think so.  The problem was that the weak reference callback was getting
called for the external string.  With no callback, there should not be any (err,
this) problem.

http://codereview.chromium.org/100344/diff/1/3#newcode601
Line 601: SetMark(symbol_table);
This was just the simplest implementation to get a fix out asap.  It leverages
all the existing infrastructure for recursive marking and handling (the
admittedly as close to impossible as possible) marking stack overflow. I agree
that it's dodgy.

Powered by Google App Engine
This is Rietveld 408576698