From 50e02649802cdb74fd3459aafa12f374358d3796 Mon Sep 17 00:00:00 2001 From: Tom Sutcliffe Date: Mon, 7 Mar 2022 21:46:28 +0000 Subject: [PATCH] chore: better error descriptions for Val and too long strings --- src/fns.lua | 5 ++++- src/memory.lua | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/fns.lua b/src/fns.lua index aebd9e0a..26655a22 100644 --- a/src/fns.lua +++ b/src/fns.lua @@ -1008,7 +1008,10 @@ function Val(stack, runtime) -- 0x92 local str = stack:pop() -- printf("Val('%s')\n", hexEscape(str)) local result = tonumber(str) - assert(result, KErrInvalidArgs) + if not result then + printf("Bad Val('%s')\n", hexEscape(str)) + error(KErrInvalidArgs) + end stack:push(result) end diff --git a/src/memory.lua b/src/memory.lua index 8179eb58..34e8fe46 100644 --- a/src/memory.lua +++ b/src/memory.lua @@ -442,7 +442,10 @@ function Variable:__call(val) -- Slow path local data if t == EString then - assert(#val <= self:stringMaxLen(), KErrStrTooLong) + if #val > self:stringMaxLen() then + printf("String too long: maxlen=%d val='%s'\n", self:stringMaxLen(), hexEscape(val)) + error(KErrStrTooLong) + end data = string_pack("