diff --git a/microscript/ILibDuktape_ChildProcess.c b/microscript/ILibDuktape_ChildProcess.c index 90a8c8d..4e164c4 100644 --- a/microscript/ILibDuktape_ChildProcess.c +++ b/microscript/ILibDuktape_ChildProcess.c @@ -204,8 +204,11 @@ duk_ret_t ILibDuktape_ChildProcess_waitExit(duk_context *ctx) return(ILibDuktape_Error(ctx, "Cannot waitExit() because JS Engine is exiting")); } - duk_push_int(ctx, 1); // [spawnedProcess][flag] - duk_put_prop_string(ctx, -2, "\xFF_WaitExit"); // [spawnedProcess] + if (ILibChain_GetContinuationState(chain) != ILibChain_ContinuationState_CONTINUE) + { + duk_push_int(ctx, 1); // [spawnedProcess][flag] + duk_put_prop_string(ctx, -2, "\xFF_WaitExit"); // [spawnedProcess] + } void *mods[] = { ILibGetBaseTimer(Duktape_GetChain(ctx)), Duktape_GetPointerProperty(ctx, -1, ILibDuktape_ChildProcess_Manager), ILibDuktape_Process_GetSignalListener(ctx) }; #ifdef WIN32 diff --git a/microscript/ILibDuktape_ScriptContainer.c b/microscript/ILibDuktape_ScriptContainer.c index db25eb2..8fa8bd3 100644 --- a/microscript/ILibDuktape_ScriptContainer.c +++ b/microscript/ILibDuktape_ScriptContainer.c @@ -1610,7 +1610,7 @@ void ILibDuktape_ScriptContainer_Engine_free(void *udata, void *ptr) { size_t sz = ptr == NULL ? 0 : ILibMemory_Size(ptr); - if (ptr != NULL) + if (ptr != NULL && ILibMemory_CanaryOK(ptr)) { ILibDuktape_ScriptContainer_TotalAllocations -= ILibMemory_Size(ptr); ILibMemory_SecureZero(ptr, sz);