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

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

Issue 1895943002: Update Blink GC plugin to reflect that Oilpan is now always enabled. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "RecordInfo.h" 6 #include "RecordInfo.h"
7 7
8 using namespace clang; 8 using namespace clang;
9 using std::string; 9 using std::string;
10 10
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 return fields_need_tracing_; 577 return fields_need_tracing_;
578 } 578 }
579 579
580 Edge* RecordInfo::CreateEdge(const Type* type) { 580 Edge* RecordInfo::CreateEdge(const Type* type) {
581 if (!type) { 581 if (!type) {
582 return 0; 582 return 0;
583 } 583 }
584 584
585 if (type->isPointerType() || type->isReferenceType()) { 585 if (type->isPointerType() || type->isReferenceType()) {
586 if (Edge* ptr = CreateEdge(type->getPointeeType().getTypePtrOrNull())) 586 if (Edge* ptr = CreateEdge(type->getPointeeType().getTypePtrOrNull()))
587 return new RawPtr(ptr, false, type->isReferenceType()); 587 return new RawPtr(ptr, type->isReferenceType());
588 return 0; 588 return 0;
589 } 589 }
590 590
591 RecordInfo* info = cache_->Lookup(type); 591 RecordInfo* info = cache_->Lookup(type);
592 592
593 // If the type is neither a pointer or a C++ record we ignore it. 593 // If the type is neither a pointer or a C++ record we ignore it.
594 if (!info) { 594 if (!info) {
595 return 0; 595 return 0;
596 } 596 }
597 597
598 TemplateArgs args; 598 TemplateArgs args;
599 599
600 if (Config::IsRawPtr(info->name()) && info->GetTemplateArgs(1, &args)) {
601 if (Edge* ptr = CreateEdge(args[0]))
602 return new RawPtr(ptr, true, false);
603 return 0;
604 }
605
606 if (Config::IsRefPtr(info->name()) && info->GetTemplateArgs(1, &args)) { 600 if (Config::IsRefPtr(info->name()) && info->GetTemplateArgs(1, &args)) {
607 if (Edge* ptr = CreateEdge(args[0])) 601 if (Edge* ptr = CreateEdge(args[0]))
608 return new RefPtr(ptr); 602 return new RefPtr(ptr);
609 return 0; 603 return 0;
610 } 604 }
611 605
612 if (Config::IsOwnPtr(info->name()) && info->GetTemplateArgs(1, &args)) { 606 if (Config::IsOwnPtr(info->name()) && info->GetTemplateArgs(1, &args)) {
613 if (Edge* ptr = CreateEdge(args[0])) 607 if (Edge* ptr = CreateEdge(args[0]))
614 return new OwnPtr(ptr); 608 return new OwnPtr(ptr);
615 return 0; 609 return 0;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 edge->members().push_back(member); 648 edge->members().push_back(member);
655 } 649 }
656 // TODO: Handle the case where we fail to create an edge (eg, if the 650 // TODO: Handle the case where we fail to create an edge (eg, if the
657 // argument is a primitive type or just not fully known yet). 651 // argument is a primitive type or just not fully known yet).
658 } 652 }
659 return edge; 653 return edge;
660 } 654 }
661 655
662 return new Value(info); 656 return new Value(info);
663 } 657 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698