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

Side by Side Diff: tools/clang/blink_gc_plugin/Config.cpp

Issue 2655933002: blink_gc_plugin: retire overloaded traceImpl detection and handling. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/clang/blink_gc_plugin/Config.h ('k') | tools/clang/blink_gc_plugin/RecordInfo.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "Config.h" 5 #include "Config.h"
6 6
7 #include <cassert> 7 #include <cassert>
8 8
9 #include "clang/AST/AST.h" 9 #include "clang/AST/AST.h"
10 10
11 using namespace clang; 11 using namespace clang;
12 12
13 // Legacy names to be removed after Blink rename: 13 // Legacy names to be removed after Blink rename:
14 namespace legacy { 14 namespace legacy {
15 const char kCreateName[] = "create"; 15 const char kCreateName[] = "create";
16 const char kTraceName[] = "trace"; 16 const char kTraceName[] = "trace";
17 const char kTraceImplName[] = "traceImpl";
18 const char kFinalizeName[] = "finalizeGarbageCollectedObject"; 17 const char kFinalizeName[] = "finalizeGarbageCollectedObject";
19 const char kTraceAfterDispatchName[] = "traceAfterDispatch"; 18 const char kTraceAfterDispatchName[] = "traceAfterDispatch";
20 const char kTraceAfterDispatchImplName[] = "traceAfterDispatchImpl";
21 const char kRegisterWeakMembersName[] = "registerWeakMembers"; 19 const char kRegisterWeakMembersName[] = "registerWeakMembers";
22 const char kAdjustAndMarkName[] = "adjustAndMark"; 20 const char kAdjustAndMarkName[] = "adjustAndMark";
23 const char kIsHeapObjectAliveName[] = "isHeapObjectAlive"; 21 const char kIsHeapObjectAliveName[] = "isHeapObjectAlive";
24 } // namespace legacy 22 } // namespace legacy
25 23
26 const char kNewOperatorName[] = "operator new"; 24 const char kNewOperatorName[] = "operator new";
27 const char* kCreateName = "Create"; 25 const char* kCreateName = "Create";
28 const char* kTraceName = "Trace"; 26 const char* kTraceName = "Trace";
29 const char* kTraceImplName = "TraceImpl";
30 const char* kFinalizeName = "FinalizeGarbageCollectedObject"; 27 const char* kFinalizeName = "FinalizeGarbageCollectedObject";
31 const char* kTraceAfterDispatchName = "TraceAfterDispatch"; 28 const char* kTraceAfterDispatchName = "TraceAfterDispatch";
32 const char* kTraceAfterDispatchImplName = "TraceAfterDispatchImpl";
33 const char* kRegisterWeakMembersName = "RegisterWeakMembers"; 29 const char* kRegisterWeakMembersName = "RegisterWeakMembers";
34 const char kHeapAllocatorName[] = "HeapAllocator"; 30 const char kHeapAllocatorName[] = "HeapAllocator";
35 const char kTraceIfNeededName[] = "TraceIfNeeded"; 31 const char kTraceIfNeededName[] = "TraceIfNeeded";
36 const char kVisitorDispatcherName[] = "VisitorDispatcher"; 32 const char kVisitorDispatcherName[] = "VisitorDispatcher";
37 const char kVisitorVarName[] = "visitor"; 33 const char kVisitorVarName[] = "visitor";
38 const char* kAdjustAndMarkName = "AdjustAndMark"; 34 const char* kAdjustAndMarkName = "AdjustAndMark";
39 const char* kIsHeapObjectAliveName = "IsHeapObjectAlive"; 35 const char* kIsHeapObjectAliveName = "IsHeapObjectAlive";
40 const char kIsEagerlyFinalizedName[] = "IsEagerlyFinalizedMarker"; 36 const char kIsEagerlyFinalizedName[] = "IsEagerlyFinalizedMarker";
41 const char kConstIteratorName[] = "const_iterator"; 37 const char kConstIteratorName[] = "const_iterator";
42 const char kIteratorName[] = "iterator"; 38 const char kIteratorName[] = "iterator";
43 const char kConstReverseIteratorName[] = "const_reverse_iterator"; 39 const char kConstReverseIteratorName[] = "const_reverse_iterator";
44 const char kReverseIteratorName[] = "reverse_iterator"; 40 const char kReverseIteratorName[] = "reverse_iterator";
45 41
46 void Config::UseLegacyNames() { 42 void Config::UseLegacyNames() {
47 kCreateName = legacy::kCreateName; 43 kCreateName = legacy::kCreateName;
48 kTraceName = legacy::kTraceName; 44 kTraceName = legacy::kTraceName;
49 kTraceImplName = legacy::kTraceImplName;
50 kFinalizeName = legacy::kFinalizeName; 45 kFinalizeName = legacy::kFinalizeName;
51 kTraceAfterDispatchName = legacy::kTraceAfterDispatchName; 46 kTraceAfterDispatchName = legacy::kTraceAfterDispatchName;
52 kTraceAfterDispatchImplName = legacy::kTraceAfterDispatchImplName;
53 kRegisterWeakMembersName = legacy::kRegisterWeakMembersName; 47 kRegisterWeakMembersName = legacy::kRegisterWeakMembersName;
54 kAdjustAndMarkName = legacy::kAdjustAndMarkName; 48 kAdjustAndMarkName = legacy::kAdjustAndMarkName;
55 kIsHeapObjectAliveName = legacy::kIsHeapObjectAliveName; 49 kIsHeapObjectAliveName = legacy::kIsHeapObjectAliveName;
56 } 50 }
57 51
58 bool Config::IsTemplateInstantiation(CXXRecordDecl* record) { 52 bool Config::IsTemplateInstantiation(CXXRecordDecl* record) {
59 ClassTemplateSpecializationDecl* spec = 53 ClassTemplateSpecializationDecl* spec =
60 dyn_cast<clang::ClassTemplateSpecializationDecl>(record); 54 dyn_cast<clang::ClassTemplateSpecializationDecl>(record);
61 if (!spec) 55 if (!spec)
62 return false; 56 return false;
63 switch (spec->getTemplateSpecializationKind()) { 57 switch (spec->getTemplateSpecializationKind()) {
64 case TSK_ImplicitInstantiation: 58 case TSK_ImplicitInstantiation:
65 case TSK_ExplicitInstantiationDefinition: 59 case TSK_ExplicitInstantiationDefinition:
66 return true; 60 return true;
67 case TSK_Undeclared: 61 case TSK_Undeclared:
68 case TSK_ExplicitSpecialization: 62 case TSK_ExplicitSpecialization:
69 return false; 63 return false;
70 // TODO: unsupported cases. 64 // TODO: unsupported cases.
71 case TSK_ExplicitInstantiationDeclaration: 65 case TSK_ExplicitInstantiationDeclaration:
72 return false; 66 return false;
73 } 67 }
74 assert(false && "Unknown template specialization kind"); 68 assert(false && "Unknown template specialization kind");
75 return false; 69 return false;
76 } 70 }
OLDNEW
« no previous file with comments | « tools/clang/blink_gc_plugin/Config.h ('k') | tools/clang/blink_gc_plugin/RecordInfo.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698