From d7ef3bf706b6617fd04e490a2a80e25b72eb842c Mon Sep 17 00:00:00 2001 From: coil <51716565+coil0@users.noreply.github.com> Date: Wed, 24 Jul 2019 22:53:58 -0400 Subject: [PATCH] Minimize unnecessary closures A closure is previously created and allocated every time tpr_send or tphr_send is called. Instead, we define the function once and reuse it. --- init.lua | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/init.lua b/init.lua index e936649..8383cda 100644 --- a/init.lua +++ b/init.lua @@ -77,16 +77,24 @@ local function parti2(pos) end -- Teleport Request System +function clear_tpr_list(name) + if tpr_list[name] then + tpr_list[name] = nil + end +end + +function clear_tphr_list(name) + if tphr_list[name] then + tphr_list[name] = nil + end +end + function tpr_send(sender, receiver) if minetest.check_player_privs(sender, {tp_admin = true}) then -- Write name values to list and clear old values. tpr_list[receiver] = sender -- Teleport timeout delay - minetest.after(timeout_delay, function(name) - if tpr_list[name] then - tpr_list[name] = nil - end - end, receiver) + minetest.after(timeout_delay, clear_tpr_list, receiver) if receiver == "" then minetest.chat_send_player(sender, S("Usage: /tpr ")) return @@ -117,11 +125,7 @@ function tpr_send(sender, receiver) if not minetest.check_player_privs(sender, {tp_admin = true}) then tpr_list[receiver] = sender -- Teleport timeout delay - minetest.after(timeout_delay, function(name) - if tpr_list[name] then - tpr_list[name] = nil - end - end, receiver) + minetest.after(timeout_delay, clear_tpr_list, receiver) end end @@ -130,11 +134,7 @@ function tphr_send(sender, receiver) -- Write name values to list and clear old values. tphr_list[receiver] = sender -- Teleport timeout delay - minetest.after(timeout_delay, function(name) - if tphr_list[name] then - tphr_list[name] = nil - end - end, receiver) + minetest.after(timeout_delay, clear_tphr_list, receiver) if receiver == "" then minetest.chat_send_player(sender, S("Usage: /tphr ")) return @@ -164,11 +164,7 @@ function tphr_send(sender, receiver) if not minetest.check_player_privs(sender, {tp_admin = true}) then tphr_list[receiver] = sender -- Teleport timeout delay - minetest.after(timeout_delay, function(name) - if tphr_list[name] then - tphr_list[name] = nil - end - end, receiver) + minetest.after(timeout_delay, clear_tphr_list, receiver) end end