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

Issue 455263004: Blink GC plugin: Ensure that classes with virtual trace methods always have vtables for their left-… (Closed)

Created:
6 years, 4 months ago by zerny-chromium
Modified:
6 years, 4 months ago
CC:
chromium-reviews, oilpan-reviews
Project:
chromium
Visibility:
Public.

Description

Blink GC plugin: Ensure that left-most vtable is the first thing to be initialized for polymorphic classes with trace methods. This is done by ensuring one of two properties for any polymorphic class with a trace method. 1. If the trace method is virtual, then the left-most base class must define a virtual trace method too. 2. If the trace method is non-virtual, then the left-most base class must define some virtual method. BUG=334149 R=ager@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=289285

Patch Set 1 #

Patch Set 2 : gcmixin #

Patch Set 3 : weaker requirments #

Total comments: 4

Patch Set 4 : CR #

Unified diffs Side-by-side diffs Delta from patch set Stats (+295 lines, -20 lines) Patch
M tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp View 1 2 3 7 chunks +151 lines, -6 lines 0 comments Download
M tools/clang/blink_gc_plugin/Config.h View 1 2 2 chunks +17 lines, -1 line 0 comments Download
A tools/clang/blink_gc_plugin/tests/base_class_must_define_virtual_trace.h View 1 chunk +38 lines, -0 lines 0 comments Download
A + tools/clang/blink_gc_plugin/tests/base_class_must_define_virtual_trace.cpp View 1 chunk +5 lines, -4 lines 0 comments Download
A tools/clang/blink_gc_plugin/tests/base_class_must_define_virtual_trace.txt View 1 chunk +8 lines, -0 lines 0 comments Download
M tools/clang/blink_gc_plugin/tests/heap/stubs.h View 1 chunk +1 line, -0 lines 0 comments Download
M tools/clang/blink_gc_plugin/tests/non_virtual_trace.h View 1 chunk +5 lines, -0 lines 0 comments Download
M tools/clang/blink_gc_plugin/tests/non_virtual_trace.cpp View 1 chunk +5 lines, -0 lines 0 comments Download
M tools/clang/blink_gc_plugin/tests/non_virtual_trace.txt View 1 chunk +11 lines, -1 line 0 comments Download
A tools/clang/blink_gc_plugin/tests/polymorphic_class_with_non_virtual_trace.h View 1 2 1 chunk +46 lines, -0 lines 0 comments Download
A + tools/clang/blink_gc_plugin/tests/polymorphic_class_with_non_virtual_trace.cpp View 1 2 1 chunk +3 lines, -8 lines 0 comments Download
A tools/clang/blink_gc_plugin/tests/polymorphic_class_with_non_virtual_trace.txt View 1 2 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 10 (0 generated)
zerny-chromium
6 years, 4 months ago (2014-08-11 12:41:03 UTC) #1
Mads Ager (chromium)
LGTM!
6 years, 4 months ago (2014-08-11 13:11:01 UTC) #2
zerny-chromium
Updated exception for GCMixin. PTAL at the Blink side change needed to pass these checks ...
6 years, 4 months ago (2014-08-11 14:51:13 UTC) #3
zerny-chromium
Updated with weaker requirements. Now we don't require trace to be virtual for polymorphic classes, ...
6 years, 4 months ago (2014-08-13 12:12:34 UTC) #4
Mads Ager (chromium)
LGTM https://codereview.chromium.org/455263004/diff/40001/tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp File tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp (right): https://codereview.chromium.org/455263004/diff/40001/tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp#newcode921 tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp:921: Remove extra empty line? https://codereview.chromium.org/455263004/diff/40001/tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp#newcode1002 tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp:1002: // Stop ...
6 years, 4 months ago (2014-08-13 12:23:58 UTC) #5
zerny-chromium
https://codereview.chromium.org/455263004/diff/40001/tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp File tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp (right): https://codereview.chromium.org/455263004/diff/40001/tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp#newcode921 tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp:921: On 2014/08/13 12:23:58, Mads Ager (chromium) wrote: > Remove ...
6 years, 4 months ago (2014-08-13 12:50:35 UTC) #6
zerny-chromium
The CQ bit was checked by zerny@chromium.org
6 years, 4 months ago (2014-08-13 12:50:38 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/zerny@chromium.org/455263004/60001
6 years, 4 months ago (2014-08-13 12:51:08 UTC) #8
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: linux_chromium_gn_rel on tryserver.chromium.linux ...
6 years, 4 months ago (2014-08-13 14:02:22 UTC) #9
commit-bot: I haz the power
6 years, 4 months ago (2014-08-13 14:13:16 UTC) #10
Message was sent while issue was closed.
Committed patchset #4 (60001) as 289285

Powered by Google App Engine
This is Rietveld 408576698