| Index: tools/clang/blink_gc_plugin/CheckFieldsVisitor.cpp
|
| diff --git a/tools/clang/blink_gc_plugin/CheckFieldsVisitor.cpp b/tools/clang/blink_gc_plugin/CheckFieldsVisitor.cpp
|
| index 0ed953fccf92e57197fcb7cc54a99bff36b8a675..558637c9c190b5489e0ddccf37b0c62f921568af 100644
|
| --- a/tools/clang/blink_gc_plugin/CheckFieldsVisitor.cpp
|
| +++ b/tools/clang/blink_gc_plugin/CheckFieldsVisitor.cpp
|
| @@ -107,7 +107,13 @@ void CheckFieldsVisitor::AtValue(Value* edge) {
|
| return;
|
| }
|
|
|
| - if (Parent()->IsRawPtr() || Parent()->IsRefPtr() || Parent()->IsOwnPtr()) {
|
| + if (Parent()->IsRawPtr() || Parent()->IsOwnPtr()) {
|
| + invalid_fields_.push_back(std::make_pair(
|
| + current_, InvalidSmartPtr(Parent())));
|
| + return;
|
| + }
|
| +
|
| + if (Parent()->IsRefPtr() && !edge->value()->IsGCRefCounted()) {
|
| invalid_fields_.push_back(std::make_pair(
|
| current_, InvalidSmartPtr(Parent())));
|
| return;
|
|
|