diff options
Diffstat (limited to 'src/dex_file.cc')
| -rw-r--r-- | src/dex_file.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/dex_file.cc b/src/dex_file.cc index a11744d232..0a18f11c01 100644 --- a/src/dex_file.cc +++ b/src/dex_file.cc @@ -675,10 +675,8 @@ void DexFile::dexDecodeDebugInfo0(const CodeItem* code_item, const art::Method* for (;;) { uint8_t opcode = *stream++; - uint8_t adjopcode = opcode - DBG_FIRST_SPECIAL; uint16_t reg; - switch (opcode) { case DBG_END_SEQUENCE: return; @@ -755,7 +753,9 @@ void DexFile::dexDecodeDebugInfo0(const CodeItem* code_item, const art::Method* case DBG_SET_FILE: break; - default: + default: { + int adjopcode = opcode - DBG_FIRST_SPECIAL; + address += adjopcode / DBG_LINE_RANGE; line += DBG_LINE_BASE + (adjopcode % DBG_LINE_RANGE); @@ -766,6 +766,7 @@ void DexFile::dexDecodeDebugInfo0(const CodeItem* code_item, const art::Method* } } break; + } } } } |