From d944bd85ec338f53dba7d36f94daf3c2456919aa Mon Sep 17 00:00:00 2001 From: Guldoman Date: Sun, 14 Aug 2022 02:15:05 +0200 Subject: [PATCH] Add predicate memoization to `command.get_all_valid` --- data/core/command.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/data/core/command.lua b/data/core/command.lua index 82f79b35..866cf04a 100644 --- a/data/core/command.lua +++ b/data/core/command.lua @@ -62,8 +62,12 @@ end function command.get_all_valid() local res = {} + local memoized_predicates = {} for name, cmd in pairs(command.map) do - if cmd.predicate() then + if memoized_predicates[cmd.predicate] == nil then + memoized_predicates[cmd.predicate] = cmd.predicate() + end + if memoized_predicates[cmd.predicate] then table.insert(res, name) end end