Index: tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp |
diff --git a/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp b/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp |
index 1a32defcc42698ae7c32cf92dc3264dcc9c7d66e..ca6bb18a04ab467dce61120d7b8c773bccdb2236 100644 |
--- a/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp |
+++ b/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp |
@@ -68,6 +68,7 @@ BlinkGCPluginConsumer::BlinkGCPluginConsumer( |
: instance_(instance), |
reporter_(instance), |
options_(options), |
+ cache_(instance), |
json_(0) { |
// Only check structures in the blink and WebKit namespaces. |
options_.checked_namespaces.insert("blink"); |
@@ -552,9 +553,10 @@ void BlinkGCPluginConsumer::CheckTraceMethod( |
reporter_.BaseRequiresTracing(parent, trace, base.first); |
for (auto& field : parent->GetFields()) { |
- if (!field.second.IsProperlyTraced()) { |
- // Discontinue once an untraced-field error is found. |
- reporter_.FieldsRequireTracing(parent, trace); |
+ if (!field.second.IsProperlyTraced() || |
+ field.second.IsInproperlyTraced()) { |
+ // Report one or more tracing-related field errors. |
+ reporter_.FieldsImproperlyTraced(parent, trace); |
break; |
} |
} |
@@ -590,6 +592,7 @@ void BlinkGCPluginConsumer::DumpClass(RecordInfo* info) { |
"reference" : "raw") : |
Parent()->IsRefPtr() ? "ref" : |
Parent()->IsOwnPtr() ? "own" : |
+ Parent()->IsUniquePtr() ? "unique" : |
(Parent()->IsMember() || Parent()->IsWeakMember()) ? "mem" : |
"val"); |
json_->CloseObject(); |