Tidy up and finish reference table dumping.
Change-Id: I9f0d214e27a75d373e3144b738f1e3da51bbc0ca
diff --git a/src/hprof/hprof.cc b/src/hprof/hprof.cc
index eacc73f..02f80c1 100644
--- a/src/hprof/hprof.cc
+++ b/src/hprof/hprof.cc
@@ -201,8 +201,7 @@
// only true when marking the root set or unreachable
// objects. Used to add rootset references to obj.
int Hprof::MarkRootObject(const Object *obj, jobject jniObj) {
- HprofRecord *rec = ¤t_record_;
- int err; // TODO: we may return this uninitialized
+ HprofRecord* rec = ¤t_record_;
HprofHeapTag heapTag = (HprofHeapTag)gc_scan_state_;
if (heapTag == 0) {
@@ -221,9 +220,7 @@
case HPROF_ROOT_STICKY_CLASS:
case HPROF_ROOT_MONITOR_USED:
case HPROF_ROOT_INTERNED_STRING:
- case HPROF_ROOT_FINALIZING:
case HPROF_ROOT_DEBUGGER:
- case HPROF_ROOT_REFERENCE_CLEANUP:
case HPROF_ROOT_VM_INTERNAL:
rec->AddU1(heapTag);
rec->AddId((HprofObjectId)obj);
@@ -268,13 +265,24 @@
rec->AddU4((uint32_t)-1); //xxx
break;
- default:
- err = 0;
+ case HPROF_CLASS_DUMP:
+ case HPROF_INSTANCE_DUMP:
+ case HPROF_OBJECT_ARRAY_DUMP:
+ case HPROF_PRIMITIVE_ARRAY_DUMP:
+ case HPROF_HEAP_DUMP_INFO:
+ case HPROF_PRIMITIVE_ARRAY_NODATA_DUMP:
+ // Ignored.
+ break;
+
+ case HPROF_ROOT_FINALIZING:
+ case HPROF_ROOT_REFERENCE_CLEANUP:
+ case HPROF_UNREACHABLE:
+ LOG(FATAL) << "obsolete tag " << static_cast<int>(heapTag);
break;
}
objects_in_segment_++;
- return err;
+ return 0;
}
int Hprof::StackTraceSerialNumber(const void* /*obj*/) {