diff --git a/include/pocketpy/pocketpy.h b/include/pocketpy/pocketpy.h index 96a277d3..dcb5542f 100644 --- a/include/pocketpy/pocketpy.h +++ b/include/pocketpy/pocketpy.h @@ -90,8 +90,8 @@ PK_EXPORT int py_currentvm(); /// Switch to a VM. /// @param index index of the VM ranging from 0 to 16 (exclusive). `0` is the default VM. PK_EXPORT void py_switchvm(int index); -/// Reset a VM. -PK_EXPORT void py_resetvm(int index); +/// Reset the current VM. +PK_EXPORT void py_resetvm(); /// Set `sys.argv`. Used for storing command-line arguments. PK_EXPORT void py_sys_setargv(int argc, char** argv); /// Setup the callbacks for the current VM. diff --git a/src/public/internal.c b/src/public/internal.c index a10c5e4a..12eef91f 100644 --- a/src/public/internal.c +++ b/src/public/internal.c @@ -61,11 +61,10 @@ void py_switchvm(int index) { pk_current_vm = pk_all_vm[index]; } -void py_resetvm(int index){ - if(index < 0 || index >= 16) c11__abort("invalid vm index"); - VM* vm = pk_all_vm[index]; - if(!vm) c11__abort("vm not initialized"); +void py_resetvm() { + VM* vm = pk_current_vm; VM__dtor(vm); + memset(vm, 0, sizeof(VM)); VM__ctor(vm); }