# HG changeset patch # User Waqas Hussain # Date 1323414141 -18000 # Node ID ca74d8ed1a15d2a34a435e5aa0e3bdc0eb016cbd # Parent d745f4c282946d09fda2e79a2ecb6a12ba167d63 util.array: Avoid globals. diff -r d745f4c28294 -r ca74d8ed1a15 util/array.lua --- a/util/array.lua Fri Dec 09 11:57:14 2011 +0500 +++ b/util/array.lua Fri Dec 09 12:02:21 2011 +0500 @@ -9,6 +9,11 @@ local t_insert, t_sort, t_remove, t_concat = table.insert, table.sort, table.remove, table.concat; +local setmetatable = setmetatable; +local math_random = math.random; +local pairs, ipairs = pairs, ipairs; +local tostring = tostring; + local array = {}; local array_base = {}; local array_methods = {}; @@ -27,7 +32,7 @@ -- Read-only methods function array_methods:random() - return self[math.random(1,#self)]; + return self[math_random(1,#self)]; end -- These methods can be called two ways: @@ -80,7 +85,7 @@ function array_methods:shuffle(outa, ina) local len = #self; for i=1,#self do - local r = math.random(i,len); + local r = math_random(i,len); self[i], self[r] = self[r], self[i]; end return self; @@ -104,18 +109,18 @@ end function array_methods:push(x) - table.insert(self, x); + t_insert(self, x); return self; end function array_methods:pop(x) local v = self[x]; - table.remove(self, x); + t_remove(self, x); return v; end function array_methods:concat(sep) - return table.concat(array.map(self, tostring), sep); + return t_concat(array.map(self, tostring), sep); end function array_methods:length() @@ -128,7 +133,7 @@ while true do var = f(s, var); if var == nil then break; end - table.insert(t, var); + t_insert(t, var); end return setmetatable(t, array_mt); end