performance improvement

This commit is contained in:
Manuel Simon Hirsig
2016-09-18 21:24:16 +02:00
parent 58cdf62bcf
commit 8db6110211
3 changed files with 18 additions and 19 deletions
+1 -1
View File
@@ -674,7 +674,7 @@ local methods = {
self.isSorted = nil
self:SetSelectedRecord(nil, true)
sort(self.records, function(a, b) return sorting.multi_lt(temp-A(a.search_signature, tostring(a)), temp-A(b.search_signature, tostring(b))) end)
sort(self.records, function(a, b) return sorting.multi_lt(a.search_signature, b.search_signature, tostring(a), tostring(b)) end)
local records = self.records
if getn(records) == 0 then return end
+9 -9
View File
@@ -148,20 +148,20 @@ function update_auction_listing()
end
sort(auction_rows, function(a, b)
return sorting.multi_lt(
temp-A(
a.record.unit_buyout_price == 0 and huge or a.record.unit_buyout_price,
b.record.unit_buyout_price == 0 and huge or b.record.unit_buyout_price,
a.record.unit_blizzard_bid,
b.record.unit_blizzard_bid,
a.record.stack_size,
b.record.stack_size,
b.record.own and 1 or 0,
a.record.duration
),
temp-A(
b.record.unit_buyout_price == 0 and huge or b.record.unit_buyout_price,
b.record.unit_blizzard_bid,
b.record.stack_size,
a.record.own and 1 or 0,
a.record.own and 1 or 0,
a.record.duration,
b.record.duration
)
)
end)
end
+8 -9
View File
@@ -14,16 +14,15 @@ function public.compare(a, b, desc)
end
end
function public.multi_lt(xs, ys)
local i = 1
while true do
if xs[i] and ys[i] and xs[i] ~= ys[i] then
return xs[i] < ys[i]
elseif not xs[i] and ys[i] then
function public.vararg.multi_lt(arg)
for i = 1, getn(arg), 2 do
if arg[i] and arg[i + 1] and arg[i] ~= arg[i + 1] then
return arg[i] < arg[i + 1]
elseif not arg[i] and arg[i + 1] then
return true
elseif not ys[i] then
elseif not arg[i + 1] then
return false
end
i = i + 1
end
end
return false
end