Fix crashes when a resolution method is passed to PrettyMethod.
Found by dump-oat-boot.
Change-Id: Icf670e37663c9761f64a683ea22a7a9c4df68b97
diff --git a/src/utils.cc b/src/utils.cc
index 389c280..a1c4b7a 100644
--- a/src/utils.cc
+++ b/src/utils.cc
@@ -273,6 +273,9 @@
result += mh.GetName();
if (with_signature) {
std::string signature(mh.GetSignature());
+ if (signature == "<no signature>") {
+ return result + signature;
+ }
result = PrettyReturnType(signature.c_str()) + " " + result + PrettyArguments(signature.c_str());
}
return result;
@@ -285,6 +288,9 @@
result += dex_file.GetMethodName(method_id);
if (with_signature) {
std::string signature(dex_file.GetMethodSignature(method_id));
+ if (signature == "<no signature>") {
+ return result + signature;
+ }
result = PrettyReturnType(signature.c_str()) + " " + result + PrettyArguments(signature.c_str());
}
return result;