Fix 065 and 066 tests (NULL Method bug). Don't use Method in LLVM method compiler.
Change-Id: I98e4e9b329448b1b72c3b5c9d712ea68dab624bd
diff --git a/src/dex_file.cc b/src/dex_file.cc
index c3e7c84..6168f9e 100644
--- a/src/dex_file.cc
+++ b/src/dex_file.cc
@@ -580,7 +580,6 @@
return descriptor;
}
-
int32_t DexFile::GetLineNumFromPC(const Method* method, uint32_t rel_pc) const {
// For native method, lineno should be -2 to indicate it is native. Note that
// "line number == -2" is how libcore tells from StackTraceElement.
@@ -588,12 +587,18 @@
return -2;
}
- const CodeItem* code_item = GetCodeItem(method->GetCodeItemOffset());
+ return GetLineNumFromPC(method->IsStatic(), method->GetDexMethodIndex(),
+ GetCodeItem(method->GetCodeItemOffset()), rel_pc);
+}
+
+int32_t DexFile::GetLineNumFromPC(bool is_static, uint32_t method_idx,
+ const CodeItem* code_item,
+ uint32_t rel_pc) const {
DCHECK(code_item != NULL) << GetLocation();
// A method with no line number info should return -1
LineNumFromPcContext context(rel_pc, -1);
- DecodeDebugInfo(code_item, method->IsStatic(), method->GetDexMethodIndex(), LineNumForPcCb,
+ DecodeDebugInfo(code_item, is_static, method_idx, LineNumForPcCb,
NULL, &context);
return context.line_num_;
}