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

Issue 455363002: Oilpan: fix tracing of un-initialized part objects during conservative GCs. (Closed)

Created:
6 years, 4 months ago by Mads Ager (chromium)
Modified:
6 years, 4 months ago
CC:
blink-reviews, kouhei+heap_chromium.org
Project:
blink
Visibility:
Public.

Description

Oilpan: fix tracing of un-initialized part objects during conservative GCs. If a part object has a virtual trace method we need to check the vtable before calling the trace method. This is necessary because conservative GCs can see the part object before it has been constructed (if there is an allocation during the construction of the containing object.) Added simple regression test that illustrates the issue. R=erik.corry@gmail.com, zerny@chromium.org Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=180335

Patch Set 1 #

Total comments: 2

Patch Set 2 : Change handling of null vtable on stack-reachable object #

Patch Set 3 : rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+64 lines, -52 lines) Patch
M Source/platform/heap/Heap.cpp View 1 2 3 chunks +30 lines, -38 lines 0 comments Download
M Source/platform/heap/HeapTest.cpp View 1 2 3 chunks +29 lines, -12 lines 0 comments Download
M Source/platform/heap/Visitor.h View 1 2 2 chunks +5 lines, -2 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
Mads Ager (chromium)
6 years, 4 months ago (2014-08-11 10:23:54 UTC) #1
Mads Ager (chromium)
+oilpan-reviews
6 years, 4 months ago (2014-08-11 10:26:06 UTC) #2
zerny-chromium
lgtm, under the assumption that Polymorphic<T>::value => is_virtual(T::trace). I'll make a plugin CL to verify ...
6 years, 4 months ago (2014-08-11 10:42:06 UTC) #3
Erik Corry
LGTM, but please don't land before the plugin change is done.
6 years, 4 months ago (2014-08-11 10:43:15 UTC) #4
haraken
https://codereview.chromium.org/455363002/diff/1/Source/platform/heap/Visitor.h File Source/platform/heap/Visitor.h (right): https://codereview.chromium.org/455363002/diff/1/Source/platform/heap/Visitor.h#newcode294 Source/platform/heap/Visitor.h:294: if (!vtable) Can we merge this check with vTableInitialized() ...
6 years, 4 months ago (2014-08-11 10:44:02 UTC) #5
Mads Ager (chromium)
On 2014/08/11 10:43:15, Erik Corry wrote: > LGTM, but please don't land before the plugin ...
6 years, 4 months ago (2014-08-11 11:00:26 UTC) #6
Mads Ager (chromium)
Thanks for the comments! I will not commit this until Ian has the plugin side ...
6 years, 4 months ago (2014-08-11 12:17:36 UTC) #7
haraken
On 2014/08/11 12:17:36, Mads Ager (chromium) wrote: > Thanks for the comments! I will not ...
6 years, 4 months ago (2014-08-11 12:37:21 UTC) #8
Mads Ager (chromium)
The CQ bit was checked by ager@chromium.org
6 years, 4 months ago (2014-08-15 06:16:14 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/ager@chromium.org/455363002/40001
6 years, 4 months ago (2014-08-15 06:16:34 UTC) #10
commit-bot: I haz the power
6 years, 4 months ago (2014-08-15 07:29:05 UTC) #11
Message was sent while issue was closed.
Committed patchset #3 (40001) as 180335

Powered by Google App Engine
This is Rietveld 408576698