From a5559c6e097f635e43b925629fe5dce5b035c2a0 Mon Sep 17 00:00:00 2001 From: Manuel Simon Hirsig Date: Mon, 7 Nov 2016 12:13:43 +0100 Subject: [PATCH] greent refactoring --- aux-addon.lua | 2 +- aux-addon.toc | 2 +- core/cache.lua | 2 +- core/disenchant.lua | 2 +- core/history.lua | 2 +- core/post.lua | 2 +- core/scan.lua | 2 +- core/slash.lua | 2 +- core/stack.lua | 2 +- core/tooltip.lua | 2 +- gui/auction_listing.lua | 2 +- gui/core.lua | 2 +- gui/item_listing.lua | 2 +- gui/listing.lua | 2 +- libs/green_t.lua | 155 ---------------------------------------- tabs/auctions/core.lua | 2 +- tabs/bids/core.lua | 2 +- tabs/post/core.lua | 2 +- tabs/search/core.lua | 2 +- util/completion.lua | 2 +- util/filter.lua | 2 +- util/info.lua | 2 +- util/money.lua | 2 +- util/persistence.lua | 2 +- util/scan.lua | 2 +- util/sort.lua | 2 +- 26 files changed, 25 insertions(+), 180 deletions(-) delete mode 100644 libs/green_t.lua diff --git a/aux-addon.lua b/aux-addon.lua index 71cdbc4..2b5f2a1 100644 --- a/aux-addon.lua +++ b/aux-addon.lua @@ -1,6 +1,6 @@ module 'aux' -include 'green_T' +include 'T' local info = require 'aux.util.info' local money = require 'aux.util.money' diff --git a/aux-addon.toc b/aux-addon.toc index 8060233..7a3088f 100644 --- a/aux-addon.toc +++ b/aux-addon.toc @@ -6,7 +6,7 @@ libs\inspect.lua libs\module.lua -libs\green_t.lua +libs\T.lua aux-addon.lua util.lua diff --git a/core/cache.lua b/core/cache.lua index 0c28753..3475837 100644 --- a/core/cache.lua +++ b/core/cache.lua @@ -1,6 +1,6 @@ module 'aux.core.cache' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/core/disenchant.lua b/core/disenchant.lua index fafcea0..a725aaf 100644 --- a/core/disenchant.lua +++ b/core/disenchant.lua @@ -1,6 +1,6 @@ module 'aux.core.disenchant' -include 'green_T' +include 'T' include 'aux' local history = require 'aux.core.history' diff --git a/core/history.lua b/core/history.lua index 8a25745..382b437 100644 --- a/core/history.lua +++ b/core/history.lua @@ -1,6 +1,6 @@ module 'aux.core.history' -include 'green_T' +include 'T' include 'aux' local persistence = require 'aux.util.persistence' diff --git a/core/post.lua b/core/post.lua index 3dfe153..b674642 100644 --- a/core/post.lua +++ b/core/post.lua @@ -1,6 +1,6 @@ module 'aux.core.post' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/core/scan.lua b/core/scan.lua index 91c47a4..3cb6af0 100644 --- a/core/scan.lua +++ b/core/scan.lua @@ -1,6 +1,6 @@ module 'aux.core.scan' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/core/slash.lua b/core/slash.lua index 822fe88..7caf2cb 100644 --- a/core/slash.lua +++ b/core/slash.lua @@ -1,6 +1,6 @@ module 'aux.core.slash' -include 'green_T' +include 'T' include 'aux' local persistence = require 'aux.util.persistence' diff --git a/core/stack.lua b/core/stack.lua index 75438ca..7a18a49 100644 --- a/core/stack.lua +++ b/core/stack.lua @@ -1,6 +1,6 @@ module 'aux.core.stack' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/core/tooltip.lua b/core/tooltip.lua index 944f03e..8a1abc9 100644 --- a/core/tooltip.lua +++ b/core/tooltip.lua @@ -1,6 +1,6 @@ module 'aux.core.tooltip' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/gui/auction_listing.lua b/gui/auction_listing.lua index 8b282f9..0a5b807 100644 --- a/gui/auction_listing.lua +++ b/gui/auction_listing.lua @@ -1,6 +1,6 @@ module 'aux.gui.auction_listing' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/gui/core.lua b/gui/core.lua index 4d6db81..7da9211 100644 --- a/gui/core.lua +++ b/gui/core.lua @@ -1,6 +1,6 @@ module 'aux.gui' -include 'green_T' +include 'T' include 'aux' M.font = [[Fonts\ARIALN.TTF]] diff --git a/gui/item_listing.lua b/gui/item_listing.lua index b99c2fb..f23f1d4 100644 --- a/gui/item_listing.lua +++ b/gui/item_listing.lua @@ -1,6 +1,6 @@ module 'aux.gui.item_listing' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/gui/listing.lua b/gui/listing.lua index 2bb3462..b054047 100644 --- a/gui/listing.lua +++ b/gui/listing.lua @@ -1,6 +1,6 @@ module 'aux.gui.listing' -include 'green_T' +include 'T' include 'aux' local gui = require 'aux.gui' diff --git a/libs/green_t.lua b/libs/green_t.lua deleted file mode 100644 index 70c7be5..0000000 --- a/libs/green_t.lua +++ /dev/null @@ -1,155 +0,0 @@ -library 'green_T' - -local next, getn, setn, tremove, type, setmetatable = next, getn, table.setn, tremove, type, setmetatable - -local wipe, acquire, release, auto_release, dep_release -do - local pool, pool_size, overflow_pool, is_auto_release, is_dep_release = {}, 0, setmetatable({}, {__mode='k'}), {}, setmetatable({}, {__mode='k'}) - - function wipe(t) - setmetatable(t, nil) - for k, v in t do - if is_dep_release[v] then release(v) end - t[k] = nil - end - t.reset, t.reset = nil, 1 - setn(t, 0) - end - M.wipe = wipe - - CreateFrame'Frame':SetScript('OnUpdate', function() - for t in is_auto_release do release(t) end - wipe(is_auto_release) - end) - - function acquire() - if pool_size > 0 then - pool_size = pool_size - 1 - return pool[pool_size + 1] - end - local t = next(overflow_pool) - if t then - overflow_pool[t] = nil - return t - end - return {} - end - M.acquire = acquire - - function release(t) - wipe(t) - is_auto_release[t] = nil - is_dep_release[t] = nil - if pool_size < 50 then - pool_size = pool_size + 1 - pool[pool_size] = t - else - overflow_pool[t] = true - end - end - M.release = release - - function auto_release(v, enable) - if type(v) ~= 'table' then return end - is_auto_release[v] = enable and true or nil - end - M.auto_release = auto_release - - function dep_release(v, enable) - if type(v) ~= 'table' then return end - is_dep_release[v] = enable and true or nil - end - M.dep_release = dep_release -end - -M.get_T = acquire - -M.temp = setmetatable({}, { - __metatable = false, - __newindex = nop, - __sub = function(_, v) auto_release(v, true); return v end, -}) -M.weak = setmetatable({}, { - __metatable = false, - __newindex = nop, - __sub = function(_, v) dep_release(v, true); return v end, -}) - -do - local function ret(t) - if getn(t) > 0 then - return tremove(t, 1), ret(t) - else - release(t) - end - end - M.ret = ret -end - -M.empty = setmetatable({}, {__metatable=false, __newindex=nop}) - -local vararg -do - local MAXPARAMS = 100 - - local code = [[ - local f, setn, acquire, auto_release = f, setn, acquire, auto_release - return function( - ]] - for i = 1, MAXPARAMS - 1 do - code = code .. format('a%d,', i) - end - code = code .. [[ - overflow) - if overflow ~= nil then error("Vararg overflow.") end - local n = 0 - repeat - ]] - for i = MAXPARAMS - 1, 1, -1 do - code = code .. format('if a%1$d ~= nil then n = %1$d; break end;', i) - end - code = code .. [[ - until true - local t = acquire() - auto_release(t, true) - setn(t, n) - repeat - ]] - for i = 1, MAXPARAMS - 1 do - code = code .. format('if %1$d > n then break end; t[%1$d] = a%1$d;', i) - end - code = code .. [[ - until true - return f(t) - end - ]] - - function vararg(f) - local chunk = loadstring(code) - setfenv(chunk, {f=f, setn=setn, acquire=acquire, auto_release=auto_release}) - return chunk() - end - M.vararg = setmetatable({}, { - __metatable = false, - __sub = function(_, v) return vararg(v) end, - }) -end - -M.A = vararg(function(arg) - auto_release(arg, false) - return arg -end) -M.S = vararg(function(arg) - local t = acquire() - for _, v in arg do - t[v] = true - end - return t -end) -M.O = vararg(function(arg) - local t = acquire() - for i = 1, getn(arg), 2 do - t[arg[i]] = arg[i + 1] - end - return t -end) \ No newline at end of file diff --git a/tabs/auctions/core.lua b/tabs/auctions/core.lua index 017fe53..c4ce164 100644 --- a/tabs/auctions/core.lua +++ b/tabs/auctions/core.lua @@ -1,6 +1,6 @@ module 'aux.tabs.auctions' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/tabs/bids/core.lua b/tabs/bids/core.lua index 930e5e3..dd6acc6 100644 --- a/tabs/bids/core.lua +++ b/tabs/bids/core.lua @@ -1,6 +1,6 @@ module 'aux.tabs.bids' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/tabs/post/core.lua b/tabs/post/core.lua index 17fbe87..c9d0e1b 100644 --- a/tabs/post/core.lua +++ b/tabs/post/core.lua @@ -1,6 +1,6 @@ module 'aux.tabs.post' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/tabs/search/core.lua b/tabs/search/core.lua index 711cc69..c84904e 100644 --- a/tabs/search/core.lua +++ b/tabs/search/core.lua @@ -1,6 +1,6 @@ module 'aux.tabs.search' -include 'green_T' +include 'T' include 'aux' TAB 'Search' diff --git a/util/completion.lua b/util/completion.lua index 8d3fef5..6c91a96 100644 --- a/util/completion.lua +++ b/util/completion.lua @@ -1,6 +1,6 @@ module 'aux.util.completion' -include 'green_T' +include 'T' include 'aux' local filter_util = require 'aux.util.filter' diff --git a/util/filter.lua b/util/filter.lua index f8c9737..d52bf31 100644 --- a/util/filter.lua +++ b/util/filter.lua @@ -1,6 +1,6 @@ module 'aux.util.filter' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/util/info.lua b/util/info.lua index 3b8a545..95ed1ef 100644 --- a/util/info.lua +++ b/util/info.lua @@ -1,6 +1,6 @@ module 'aux.util.info' -include 'green_T' +include 'T' include 'aux' local cache = require 'aux.core.cache' diff --git a/util/money.lua b/util/money.lua index 65ebb5f..fd03e04 100644 --- a/util/money.lua +++ b/util/money.lua @@ -1,6 +1,6 @@ module 'aux.util.money' -include 'green_T' +include 'T' include 'aux' M.GOLD_TEXT = '|cffffd70ag|r' diff --git a/util/persistence.lua b/util/persistence.lua index 6733e31..5f85627 100644 --- a/util/persistence.lua +++ b/util/persistence.lua @@ -1,6 +1,6 @@ module 'aux.util.persistence' -include 'green_T' +include 'T' include 'aux' _G.aux_datasets = T diff --git a/util/scan.lua b/util/scan.lua index 141afbd..a9dfe62 100644 --- a/util/scan.lua +++ b/util/scan.lua @@ -1,6 +1,6 @@ module 'aux.util.scan' -include 'green_T' +include 'T' include 'aux' local info = require 'aux.util.info' diff --git a/util/sort.lua b/util/sort.lua index 61bd98c..f50d623 100644 --- a/util/sort.lua +++ b/util/sort.lua @@ -1,6 +1,6 @@ module 'aux.util.sort' -include 'green_T' +include 'T' include 'aux' M.EQ = 0