mirror of
https://github.com/revanced/smali.git
synced 2025-06-12 12:17:37 +02:00
- Fixed an issue with debug info decoding, when it encountered an "end local" instruction for a register/local that hadn't been declared previously by a .local directive. This assumably happens when "ending" a parameter, in order to reuse that register for something else
git-svn-id: https://smali.googlecode.com/svn/trunk@176 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
This commit is contained in:
@ -79,13 +79,21 @@ public class DebugInfoDecoder {
|
||||
case 0x05:
|
||||
{
|
||||
EndLocal inst = (EndLocal)debugInst;
|
||||
delegate.endLocal(address, locals[inst.getRegisterNumber()]);
|
||||
Local local = locals[inst.getRegisterNumber()];
|
||||
if (local == null) {
|
||||
local = new Local(inst.getRegisterNumber(), null, null, null);
|
||||
}
|
||||
delegate.endLocal(address, local);
|
||||
break;
|
||||
}
|
||||
case 0x06:
|
||||
{
|
||||
RestartLocal inst = (RestartLocal)debugInst;
|
||||
delegate.restartLocal(address, locals[inst.getRegisterNumber()]);
|
||||
Local local = locals[inst.getRegisterNumber()];
|
||||
if (local == null) {
|
||||
local = new Local(inst.getRegisterNumber(), null, null, null);
|
||||
}
|
||||
delegate.restartLocal(address, local);
|
||||
break;
|
||||
}
|
||||
case 0x07:
|
||||
|
Reference in New Issue
Block a user