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

Issue 827693004: Blink GC plugin: improve handling of type dependent bases. (Closed)

Created:
5 years, 12 months ago by sof
Modified:
5 years, 12 months ago
Reviewers:
oilpan-reviews, haraken
CC:
chromium-reviews
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Blink GC plugin: improve handling of type dependent bases. When exhaustively traversing the set of base classes for a class C, the RecordInfo::IsGCDerived() method relied on the clang traversal method used to support name lookups for a class. It will step over and ignore any derived classes with dependent types as these are not to be considered for that purpose. In order to identify GC derived base classes for a definition like template<typename T> class A : public GarbageCollected<A> { public: // ..other needed stuff.. class Local : public GarbageCollected<Local> { ... }; }; and its nested class Local, traverse the base classes and if any of them has a dependent type, resolve its dependent template and use its class name when determining if it is a "GC derived" class. For the above class, Local gets a dependent type when it is lifted out of the class template by the AST visitor -- its type depending on T. R= BUG=444740 Committed: https://crrev.com/a3d83dbb235465f5a8f2fe70a9f60b68fe5e055b Cr-Commit-Position: refs/heads/master@{#309696}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+165 lines, -48 lines) Patch
M tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp View 4 chunks +6 lines, -18 lines 0 comments Download
M tools/clang/blink_gc_plugin/RecordInfo.h View 2 chunks +6 lines, -1 line 0 comments Download
M tools/clang/blink_gc_plugin/RecordInfo.cpp View 4 chunks +55 lines, -29 lines 0 comments Download
A tools/clang/blink_gc_plugin/tests/templated_class_with_local_class_requires_trace.h View 1 chunk +52 lines, -0 lines 0 comments Download
A tools/clang/blink_gc_plugin/tests/templated_class_with_local_class_requires_trace.cpp View 1 chunk +26 lines, -0 lines 0 comments Download
A tools/clang/blink_gc_plugin/tests/templated_class_with_local_class_requires_trace.txt View 1 chunk +20 lines, -0 lines 0 comments Download

Messages

Total messages: 7 (2 generated)
sof
Please take a look. Might be able to generalize slightly the treatment of dependently typed ...
5 years, 12 months ago (2014-12-28 22:57:27 UTC) #2
haraken
LGTM
5 years, 12 months ago (2014-12-29 02:33:30 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/827693004/1
5 years, 12 months ago (2014-12-29 02:34:14 UTC) #5
commit-bot: I haz the power
Committed patchset #1 (id:1)
5 years, 12 months ago (2014-12-29 03:16:01 UTC) #6
commit-bot: I haz the power
5 years, 12 months ago (2014-12-29 03:16:50 UTC) #7
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/a3d83dbb235465f5a8f2fe70a9f60b68fe5e055b
Cr-Commit-Position: refs/heads/master@{#309696}

Powered by Google App Engine
This is Rietveld 408576698