diff options
author | 2018-10-05 23:42:12 +0000 | |
---|---|---|
committer | 2018-10-08 13:18:35 -0700 | |
commit | 1c7b1fcf0ff29d83d13d38d0451a54474ccf5964 (patch) | |
tree | b978817acd252f10bd4648d3582ac9459fc9a0f4 /runtime/interpreter/interpreter_common.cc | |
parent | 59b950f53152c169464ba8c63d44102eeba1e594 (diff) |
Revert^2 "JVMTI PopFrame support"
This reverts commit f67d0cbf2743b29aa6e1be7ae2f71762b8762785.
Redefine-stress causes classes to be loaded at slightly different
places due to the deep verification needed to redefine a class. This
would cause the parts of tests 1953 and 1954 to fail due to classes
loading at unexpected times. We changed the test to skip these
test-cases when they cannot be correctly executed.
Reason for revert: Fixed issue causing tests to fail under
redefine-stress
Test: ./test.py --host
Test: ./art/tools/run-libjdwp-tests.sh --mode=host
Test: ./test/testrunner/testrunner.py --host --redefine-stress
Bug: 73255278
Bug: 111357976
Change-Id: I46fb4aed878bcc9398f2b73ad5040d7c97aec3ef
Diffstat (limited to 'runtime/interpreter/interpreter_common.cc')
-rw-r--r-- | runtime/interpreter/interpreter_common.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/interpreter/interpreter_common.cc b/runtime/interpreter/interpreter_common.cc index 92d4731480..dc3cc4585f 100644 --- a/runtime/interpreter/interpreter_common.cc +++ b/runtime/interpreter/interpreter_common.cc @@ -371,6 +371,12 @@ bool DoIPutQuick(const ShadowFrame& shadow_frame, const Instruction* inst, uint1 if (UNLIKELY(self->IsExceptionPending())) { return false; } + if (UNLIKELY(shadow_frame.GetForcePopFrame())) { + // Don't actually set the field. The next instruction will force us to pop. + DCHECK(Runtime::Current()->AreNonStandardExitsEnabled()); + DCHECK(PrevFrameWillRetry(self, shadow_frame)); + return true; + } } // Note: iput-x-quick instructions are only for non-volatile fields. switch (field_type) { |