1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2025-12-20 02:03:15 +00:00

Fixed crash on self-update, caused by IOActive fix on posix

This commit is contained in:
Bryan Roe
2020-10-17 13:35:11 -07:00
parent d895d92e07
commit 7ae97b3a7d
3 changed files with 13 additions and 0 deletions

View File

@@ -765,6 +765,12 @@ void Duktape_SafeDestroyHeap(duk_context *ctx)
duk_destroy_heap(ctx);
if (ctxd->fakechain != 0 && ctxd->chain != NULL)
{
ILibChain_DestroyEx(ctxd->chain);
ctxd->chain = NULL;
}
if (ILibLinkedList_GetCount(ctxd->threads) > 0)
{
#ifdef WIN32
@@ -797,6 +803,7 @@ void Duktape_SafeDestroyHeap(duk_context *ctx)
#endif
}
ILibLinkedList_Destroy(ctxd->threads);
ILibMemory_Free(ctxd);
}
void *Duktape_GetChain(duk_context *ctx)

View File

@@ -55,6 +55,7 @@ typedef struct ILibDuktape_ContextData
uint32_t apc_flags;
#endif
void *threads;
int fakechain;
void *chain;
void *user;
}ILibDuktape_ContextData;

View File

@@ -2514,6 +2514,11 @@ int ILibDuktape_ScriptContainer_DebuggingOK(duk_context *ctx)
duk_context *ILibDuktape_ScriptContainer_InitializeJavaScriptEngineEx3(duk_context *ctx, SCRIPT_ENGINE_SECURITY_FLAGS securityFlags, unsigned int executionTimeout, void *chain, char **argList, ILibSimpleDataStore *db, char *exePath, ILibProcessPipe_Manager pipeManager, ILibDuktape_HelperEvent exitHandler, void *exitUser)
{
void **timeoutKey = executionTimeout > 0 ? (void**)ILibMemory_Allocate(sizeof(void*), 0, NULL, NULL) : NULL;
if (chain == NULL)
{
duk_ctx_context_data(ctx)->fakechain = 1;
chain = ILibCreateChain();
}
duk_ctx_context_data(ctx)->chain = chain;
duk_push_heap_stash(ctx); // [s]