Delete ClassHelper and fix compaction bug in GetDirectInterface
Cleanup helps to prevent compaction bugs. Fixed a fairly serious
compaction error caused by calling ClassHelper::GetDirectInterface
without handling the case where it causes thread suspension due to
ResolveType.
Bug: 8981901
Change-Id: I82b3bb6dd48d21eb6ece7aae0733c4a23c2bc408
diff --git a/runtime/utils.cc b/runtime/utils.cc
index f26b598..ad0175a 100644
--- a/runtime/utils.cc
+++ b/runtime/utils.cc
@@ -230,7 +230,7 @@
if (klass == NULL) {
return "null";
}
- return PrettyDescriptor(ClassHelper(klass).GetDescriptor());
+ return PrettyDescriptor(klass->GetDescriptor());
}
std::string PrettyDescriptor(const std::string& descriptor) {
@@ -412,11 +412,9 @@
if (obj->GetClass() == NULL) {
return "(raw)";
}
- ClassHelper kh(obj->GetClass());
- std::string result(PrettyDescriptor(kh.GetDescriptor()));
+ std::string result(PrettyDescriptor(obj->GetClass()->GetDescriptor()));
if (obj->IsClass()) {
- kh.ChangeClass(obj->AsClass());
- result += "<" + PrettyDescriptor(kh.GetDescriptor()) + ">";
+ result += "<" + PrettyDescriptor(obj->AsClass()->GetDescriptor()) + ">";
}
return result;
}