Make DoDexPcMoveEvent always be NO_INLINE
This function can cause the stack frame of ExecuteSwitchImpl to grow
past the stack-frame limit if it is inlined.
Follow up to: I70f76ba7a876bc57204d379295a6d75e5bcefb45
Follow up to: I25c143715386bee74e99358062eeb2404e029e32
Test: mma -j40 build-art
Bug: 63118894
Change-Id: Id63f80c35a7d45637c658c3ba186eb8d908d80b0
diff --git a/runtime/interpreter/interpreter_switch_impl.cc b/runtime/interpreter/interpreter_switch_impl.cc
index de8c44e..0a2705d 100644
--- a/runtime/interpreter/interpreter_switch_impl.cc
+++ b/runtime/interpreter/interpreter_switch_impl.cc
@@ -17,7 +17,6 @@
#include "interpreter_switch_impl.h"
#include "base/enums.h"
-#include "base/memory_tool.h"
#include "experimental_flags.h"
#include "interpreter_common.h"
#include "jit/jit.h"
@@ -119,15 +118,12 @@
// to detect exceptions thrown by the DexPcMovedEvent itself. These exceptions could be thrown by
// jvmti-agents while handling breakpoint or single step events. We had to move this into its own
// function because it was making ExecuteSwitchImpl have too large a stack.
-#ifdef ADDRESS_SANITIZER
-NO_INLINE
-#endif // ADDRESS_SANITIZER
-static bool DoDexPcMoveEvent(Thread* self,
- const DexFile::CodeItem* code_item,
- const ShadowFrame& shadow_frame,
- uint32_t dex_pc,
- const instrumentation::Instrumentation* instrumentation,
- JValue* save_ref)
+NO_INLINE static bool DoDexPcMoveEvent(Thread* self,
+ const DexFile::CodeItem* code_item,
+ const ShadowFrame& shadow_frame,
+ uint32_t dex_pc,
+ const instrumentation::Instrumentation* instrumentation,
+ JValue* save_ref)
REQUIRES_SHARED(Locks::mutator_lock_) {
DCHECK(instrumentation->HasDexPcListeners());
StackHandleScope<2> hs(self);