diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-03-15 22:20:58 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-03-25 09:02:57 +0200 |
commit | 0564751c2b7584ba09b81f0a2f7507905a109588 (patch) | |
tree | 8981a504bb7faa9f21f1d3a545f4564e4a01456d /aconf/model | |
parent | 506736171d38cb045b7e7f86210b4e5aee5c28b6 (diff) | |
download | aconf-0564751c2b7584ba09b81f0a2f7507905a109588.tar.bz2 aconf-0564751c2b7584ba09b81f0a2f7507905a109588.tar.xz |
model: optimize saving for list members
Diffstat (limited to 'aconf/model')
-rw-r--r-- | aconf/model/node.lua | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/aconf/model/node.lua b/aconf/model/node.lua index 49053f5..43f06e9 100644 --- a/aconf/model/node.lua +++ b/aconf/model/node.lua @@ -297,7 +297,7 @@ function M.List:init(context, params, dtype) if v == nil then local len = #mt.members() while k < len do - mt.save(k, mt.load(k + 1, {dereference=false})) + save(k, mt.load(k + 1, {dereference=false})) k = k + 1 end end @@ -305,10 +305,11 @@ function M.List:init(context, params, dtype) end function mt.insert(v, i) + assert(v ~= nil) local len = #mt.members() if not i then i = len + 1 end - for j = len,i,-1 do mt.save(j + 1, mt.load(j, {dereference=false})) end - mt.save(i, v) + for j = len,i,-1 do save(j + 1, mt.load(j, {dereference=false})) end + save(i, v) end end |