1
0

Fix backtrace

This commit is contained in:
otya128
2016-12-31 10:28:31 +09:00
parent b2f5242731
commit ffa140e0dc

View File

@@ -57,6 +57,7 @@ class VMSlot
int bp; int bp;
otya.smilebasic.type.Data currentData; otya.smilebasic.type.Data currentData;
Function currentFunction; Function currentFunction;
int backtrace;
} }
ExecData execData; ExecData execData;
} }
@@ -280,6 +281,7 @@ class VM
bp = currentSlot.execData.bp; bp = currentSlot.execData.bp;
currentFunction = currentSlot.execData.currentFunction; currentFunction = currentSlot.execData.currentFunction;
currentData = currentSlot.execData.currentData; currentData = currentSlot.execData.currentData;
traceI = currentSlot.execData.backtrace;
setCurrentSlot(currentSlot.execReturnAddress.slot); setCurrentSlot(currentSlot.execReturnAddress.slot);
} }
else else
@@ -2499,6 +2501,7 @@ class Exec : Code
vm.slots[slot].execData.bp = vm.bp; vm.slots[slot].execData.bp = vm.bp;
vm.slots[slot].execData.currentFunction = vm.currentFunction; vm.slots[slot].execData.currentFunction = vm.currentFunction;
vm.slots[slot].execData.currentData = vm.currentData; vm.slots[slot].execData.currentData = vm.currentData;
vm.slots[slot].execData.backtrace = vm.traceI;
} }
vm.setCurrentSlot(slot); vm.setCurrentSlot(slot);
vm.pc = 0 - 1; vm.pc = 0 - 1;