summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--perfetto_hprof/perfetto_hprof.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/perfetto_hprof/perfetto_hprof.cc b/perfetto_hprof/perfetto_hprof.cc
index face4568d6..669fb0cac8 100644
--- a/perfetto_hprof/perfetto_hprof.cc
+++ b/perfetto_hprof/perfetto_hprof.cc
@@ -509,7 +509,8 @@ std::vector<std::pair<std::string, art::mirror::Object*>> GetReferences(art::mir
std::vector<std::pair<std::string, art::mirror::Object*>> referred_objects;
ReferredObjectsFinder objf(&referred_objects);
- if (klass->GetClassFlags() != art::mirror::kClassFlagNormal) {
+ if (klass->GetClassFlags() != art::mirror::kClassFlagNormal &&
+ klass->GetClassFlags() != art::mirror::kClassFlagPhantomReference) {
obj->VisitReferences(objf, art::VoidFunctor());
} else {
for (art::mirror::Class* cls = klass; cls != nullptr; cls = cls->GetSuperClass().Ptr()) {
@@ -725,7 +726,8 @@ class HeapGraphDumper {
uint64_t base_obj_id = EncodeBaseObjId(referred_objects, min_nonnull_ptr);
const bool emit_field_ids = klass->GetClassFlags() != art::mirror::kClassFlagObjectArray &&
- klass->GetClassFlags() != art::mirror::kClassFlagNormal;
+ klass->GetClassFlags() != art::mirror::kClassFlagNormal &&
+ klass->GetClassFlags() != art::mirror::kClassFlagPhantomReference;
for (const auto& p : referred_objects) {
const std::string& field_name = p.first;