diff --git a/dexlib/src/main/java/org/jf/dexlib/util/DebugInfoDecoder.java b/dexlib/src/main/java/org/jf/dexlib/util/DebugInfoDecoder.java index e2b009e4..aad56a99 100644 --- a/dexlib/src/main/java/org/jf/dexlib/util/DebugInfoDecoder.java +++ b/dexlib/src/main/java/org/jf/dexlib/util/DebugInfoDecoder.java @@ -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: