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

Issue 1504013004: GC plugin: remove mixin trace override restriction. (Closed)

Created:
5 years ago by sof
Modified:
5 years ago
CC:
chromium-reviews, blink-reviews, kouhei+heap_chromium.org, oilpan-reviews, Mads Ager (chromium), hans
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

GC plugin: remove mixin trace override restriction. The GC plugin currently insists that a class that is declared as a mixin instance (i.e., uses USING_GARBAGE_COLLECTED_MIXIN()) must also declare its own local trace implementation override. This is an unnecessary restriction to impose: - if the class derives from one GarbageCollectedMixin<> instance, it will have its virtual trace method in scope. - if it inherits from multiple, ambiguity exists and the compiler will already complain. - if the class declares traceable members of its own, then not providing a trace implementation that correctly handles these members will be otherwise flagged as an error by the GC plugin. Remove the static check from the plugin, along with adding a unit test which verifies that the virtual trace is inherited as expected. R=thakis,haraken BUG=444565 Committed: https://crrev.com/e5355493a475e7b32931231e0ee51cc0ca0519a7 Cr-Commit-Position: refs/heads/master@{#364001}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+68 lines, -65 lines) Patch
M third_party/WebKit/Source/platform/heap/HeapTest.cpp View 2 chunks +35 lines, -0 lines 0 comments Download
M tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h View 1 chunk +0 lines, -1 line 0 comments Download
M tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp View 4 chunks +0 lines, -21 lines 0 comments Download
M tools/clang/blink_gc_plugin/RecordInfo.h View 1 chunk +0 lines, -1 line 0 comments Download
M tools/clang/blink_gc_plugin/RecordInfo.cpp View 1 chunk +0 lines, -20 lines 0 comments Download
M tools/clang/blink_gc_plugin/tests/class_multiple_trace_bases.h View 1 chunk +13 lines, -3 lines 0 comments Download
M tools/clang/blink_gc_plugin/tests/class_multiple_trace_bases.cpp View 1 chunk +9 lines, -2 lines 0 comments Download
M tools/clang/blink_gc_plugin/tests/class_multiple_trace_bases.txt View 1 chunk +10 lines, -10 lines 0 comments Download
M tools/clang/blink_gc_plugin/tests/class_requires_trace_method.txt View 1 chunk +1 line, -7 lines 0 comments Download

Messages

Total messages: 12 (6 generated)
sof
please take a look. This static check was imposing a needless restriction[1], unconditionally requiring the ...
5 years ago (2015-12-08 18:50:55 UTC) #3
Nico
lgtm as far as I can tell. Maybe an oilpan expert should check that the ...
5 years ago (2015-12-08 19:27:23 UTC) #4
haraken
LGTM
5 years ago (2015-12-08 23:34:23 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1504013004/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1504013004/1
5 years ago (2015-12-09 07:34:40 UTC) #8
commit-bot: I haz the power
Committed patchset #1 (id:1)
5 years ago (2015-12-09 07:49:05 UTC) #10
commit-bot: I haz the power
5 years ago (2015-12-09 07:49:57 UTC) #12
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/e5355493a475e7b32931231e0ee51cc0ca0519a7
Cr-Commit-Position: refs/heads/master@{#364001}

Powered by Google App Engine
This is Rietveld 408576698