diff options
author | Jesse Wilson <jessewilson@google.com> | 2011-09-06 12:55:25 -0400 |
---|---|---|
committer | Jesse Wilson <jessewilson@google.com> | 2011-09-06 12:55:50 -0400 |
commit | 6e0be609807de9fabe1b63a75f7c7d619bfa2f9f (patch) | |
tree | 6985cc6d7f073af2918bcbc6fd20a33b9aedd1cf /vm/interp | |
parent | 9c545d1fba17504e41155b48e12ed04262868e43 (diff) | |
download | android_dalvik-6e0be609807de9fabe1b63a75f7c7d619bfa2f9f.tar.gz android_dalvik-6e0be609807de9fabe1b63a75f7c7d619bfa2f9f.tar.bz2 android_dalvik-6e0be609807de9fabe1b63a75f7c7d619bfa2f9f.zip |
Attempt to fix dalvik heap corruption.
This is bccheng's find, as reported here:
http://b/5208786#ISSUE_HistoryHeader49
Bug: http://b/5208786
Change-Id: I1616bac1ef6c197f723656187a784fc6838975d4
Diffstat (limited to 'vm/interp')
-rw-r--r-- | vm/interp/Interp.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/vm/interp/Interp.cpp b/vm/interp/Interp.cpp index 02a33d7a2..85d06db13 100644 --- a/vm/interp/Interp.cpp +++ b/vm/interp/Interp.cpp @@ -1732,7 +1732,7 @@ void dvmCheckBefore(const u2 *pc, u4 *fp, Thread* self) // Are we are a safe point? int flags; flags = dexGetFlagsFromOpcode(dexOpcodeFromCodeUnit(*pc)); - if (flags & VERIFY_GC_INST_MASK) { + if (flags & (VERIFY_GC_INST_MASK & ~kInstrCanThrow)) { // Yes, at a safe point. Pending callback? if (self->interpBreak.ctl.subMode & kSubModeCallbackPending) { SafePointCallback callback; |