From af4edb53e6a04f1ef36cbcf7a11faf466709bf49 Mon Sep 17 00:00:00 2001 From: Bart Van Der Meerssche Date: Sat, 22 May 2010 11:01:15 +0200 Subject: [PATCH] openwrt: use a string buffer for json_encode --- openwrt/package/flukso/src/data.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/openwrt/package/flukso/src/data.lua b/openwrt/package/flukso/src/data.lua index ef062fa..e94a3c5 100644 --- a/openwrt/package/flukso/src/data.lua +++ b/openwrt/package/flukso/src/data.lua @@ -88,12 +88,14 @@ end function json_encode(M) local J = {} for meter, T in pairs(M) do - J[meter] = '[' local H = timestamps(T) + local SB = {'['} -- use a string buffer for building up the JSON string for k, timestamp in ipairs(H) do - J[meter] = J[meter] .. '[' .. timestamp .. ',' .. T[timestamp] .. '],' + SB[#SB+1] = '[' .. timestamp .. ',' .. T[timestamp] .. '],' end - J[meter] = string.sub(J[meter], 1, -2) .. ']' + SB[#SB] = SB[#SB]:sub(1, -2) -- remove the trialing comma from the last entry + SB[#SB+1] = ']' + J[meter] = table.concat(SB) end return J end