From f7dd29ed65bb37e58031fcee79f9a87c683ba989 Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Wed, 20 Jan 2021 00:32:50 -0800 Subject: [PATCH] Fixed 64k limit of Master->Slave buffer --- microscript/ILibDuktape_ScriptContainer.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/microscript/ILibDuktape_ScriptContainer.c b/microscript/ILibDuktape_ScriptContainer.c index 7c3f4d1..76875b0 100644 --- a/microscript/ILibDuktape_ScriptContainer.c +++ b/microscript/ILibDuktape_ScriptContainer.c @@ -3492,10 +3492,14 @@ duk_ret_t ILibDuktape_ScriptContainer_SendToSlave(duk_context *ctx) if (master->child != NULL) { - len = sprintf_s(ILibScratchPad2 + 4, sizeof(ILibScratchPad2) - 4, "%s", duk_get_string(ctx, -1)); - ((int*)ILibScratchPad2)[0] = len + 4; + duk_size_t jsonlen; + char *json = (char*)duk_get_lstring(ctx, -1, &jsonlen); + char *payload = duk_push_fixed_buffer(ctx, jsonlen + 5); - ILibProcessPipe_Process_WriteStdIn(master->child, ILibScratchPad2, len + 4, ILibTransport_MemoryOwnership_USER); + len = sprintf_s(payload + 4, jsonlen + 1, "%s", json); + ((int*)json)[0] = len + 4; + + ILibProcessPipe_Process_WriteStdIn(master->child, json, len + 4, ILibTransport_MemoryOwnership_USER); } else if(master->PeerChain != NULL) {