From bbbcea9ec41513a439283a6d7ad9798d7c4faa83 Mon Sep 17 00:00:00 2001 From: Mythri Alle Date: Fri, 22 Apr 2022 11:01:06 +0000 Subject: Add additional checks for ArtMethod::GetOatQuickMethodHeader We expect a non zero pc for all cases apart from runtime methods and proxy invoke handlers. Add a DCHECK to assert this case. Also assert that we would always find AOT code for non-native methods on the fallback path. This requires fixing a unit test that was passing a pc value of 0 to get the method header of existing entry point. Test: art/test.py Change-Id: I10cfa84c5b9019227d278dd511a4ea09f6aff5b2 --- compiler/exception_test.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'compiler/exception_test.cc') diff --git a/compiler/exception_test.cc b/compiler/exception_test.cc index 495398b4b3..4471b93f17 100644 --- a/compiler/exception_test.cc +++ b/compiler/exception_test.cc @@ -187,14 +187,16 @@ TEST_F(ExceptionTest, StackTraceElement) { fake_stack.push_back(0); } - fake_stack.push_back(method_g_->GetOatQuickMethodHeader(0)->ToNativeQuickPc( + OatQuickMethodHeader* header = OatQuickMethodHeader::FromEntryPoint( + method_g_->GetEntryPointFromQuickCompiledCode()); + fake_stack.push_back(header->ToNativeQuickPc( method_g_, kDexPc, /* is_for_catch_handler= */ false)); // return pc // Create/push fake 16byte stack frame for method g fake_stack.push_back(reinterpret_cast(method_g_)); fake_stack.push_back(0); fake_stack.push_back(0); - fake_stack.push_back(method_g_->GetOatQuickMethodHeader(0)->ToNativeQuickPc( + fake_stack.push_back(header->ToNativeQuickPc( method_g_, kDexPc, /* is_for_catch_handler= */ false)); // return pc // Create/push fake 16byte stack frame for method f -- cgit v1.2.3-59-g8ed1b