summaryrefslogtreecommitdiff
path: root/builtin/common/serialize.lua
diff options
context:
space:
mode:
authorRui914 <rui914t@gmail.com>2016-03-07 00:53:45 +0900
committerparamat <mat.gregory@virginmedia.com>2016-03-06 23:42:04 +0000
commit24e8b0ac1ea45719937948607259f13866c8bc64 (patch)
treef8bb110a59ca436d2a7a15686da8feab160a1c93 /builtin/common/serialize.lua
parent75db0543f3df4b30ce23731f5008d0c9afa277ff (diff)
downloadminetest-24e8b0ac1ea45719937948607259f13866c8bc64.tar.gz
minetest-24e8b0ac1ea45719937948607259f13866c8bc64.tar.bz2
minetest-24e8b0ac1ea45719937948607259f13866c8bc64.zip
Faster insertion into table
Diffstat (limited to 'builtin/common/serialize.lua')
-rw-r--r--builtin/common/serialize.lua13
1 files changed, 6 insertions, 7 deletions
diff --git a/builtin/common/serialize.lua b/builtin/common/serialize.lua
index 90b8b2ad6..b2165648e 100644
--- a/builtin/common/serialize.lua
+++ b/builtin/common/serialize.lua
@@ -104,7 +104,7 @@ function core.serialize(x)
local i = local_index
local_index = local_index + 1
var = "_["..i.."]"
- table.insert(local_defs, var.." = "..val)
+ local_defs[#local_defs + 1] = var.." = "..val
dumped[x] = var
return var
end
@@ -135,16 +135,15 @@ function core.serialize(x)
local np = nest_points[x]
for i, v in ipairs(x) do
if not np or not np[i] then
- table.insert(vals, dump_or_ref_val(v))
+ vals[#vals + 1] = dump_or_ref_val(v)
end
idx_dumped[i] = true
end
for k, v in pairs(x) do
if (not np or not np[k]) and
not idx_dumped[k] then
- table.insert(vals,
- "["..dump_or_ref_val(k).."] = "
- ..dump_or_ref_val(v))
+ vals[#vals + 1] = "["..dump_or_ref_val(k).."] = "
+ ..dump_or_ref_val(v)
end
end
return "{"..table.concat(vals, ", ").."}"
@@ -156,9 +155,9 @@ function core.serialize(x)
local function dump_nest_points()
for parent, vals in pairs(nest_points) do
for k, v in pairs(vals) do
- table.insert(local_defs, dump_or_ref_val(parent)
+ local_defs[#local_defs + 1] = dump_or_ref_val(parent)
.."["..dump_or_ref_val(k).."] = "
- ..dump_or_ref_val(v))
+ ..dump_or_ref_val(v)
end
end
end