diff --git a/include/pocketpy/vm.h b/include/pocketpy/vm.h index b6520a5c..56792496 100644 --- a/include/pocketpy/vm.h +++ b/include/pocketpy/vm.h @@ -29,6 +29,7 @@ namespace pkpy{ typedef PyObject* (*BinaryFuncC)(VM*, PyObject*, PyObject*); +#if PK_ENABLE_PROFILER struct NextBreakpoint{ int callstack_size; int lineno; @@ -38,6 +39,7 @@ struct NextBreakpoint{ void _step(VM* vm); bool empty() const { return callstack_size == 0; } }; +#endif struct PyTypeInfo{ PyObject* obj; // never be garbage collected diff --git a/src/vm.cpp b/src/vm.cpp index fb592d06..61d88569 100644 --- a/src/vm.cpp +++ b/src/vm.cpp @@ -598,7 +598,7 @@ Str VM::disassemble(CodeObject_ co){ pod_vector jumpTargets; for(auto byte : co->codes){ - if(byte.op == OP_JUMP_ABSOLUTE || byte.op == OP_POP_JUMP_IF_FALSE || byte.op == OP_SHORTCUT_IF_FALSE_OR_POP){ + if(byte.op == OP_JUMP_ABSOLUTE || byte.op == OP_POP_JUMP_IF_FALSE || byte.op == OP_SHORTCUT_IF_FALSE_OR_POP || byte.op == OP_LOOP_CONTINUE){ jumpTargets.push_back(byte.arg); } if(byte.op == OP_GOTO){ @@ -1419,6 +1419,7 @@ void NativeFunc::check_size(VM* vm, ArgsView args) const{ } } +#if PK_ENABLE_PROFILER void NextBreakpoint::_step(VM* vm){ int curr_callstack_size = vm->callstack.size(); int curr_lineno = vm->top_frame()->curr_lineno(); @@ -1435,6 +1436,7 @@ void NextBreakpoint::_step(VM* vm){ } } } +#endif void VM::_breakpoint(){ #if PK_ENABLE_PROFILER