From f98312fe10b168eb4ba40c567075661e2f0060bf Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Mon, 18 Nov 2013 17:57:32 -0500 Subject: [PATCH] Optimize area and index finding --- internal.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/internal.lua b/internal.lua index 3c4212b..e57cfd8 100644 --- a/internal.lua +++ b/internal.lua @@ -158,16 +158,20 @@ end -- Returns a area given it's identifier function areas:getAreaById(id) - for _, area in pairs(self.areas) do - if area.id == id then return area end + if not self.areas[id] then + return nil end + assert(self.areas[id].id == id) + return self.areas[id] end -- Returns a table index for an area given it's identifier function areas:getIndexById(id) - for i, area in pairs(self.areas) do - if area.id == id then return i end + if not self.areas[id] then + return nil end + assert(self.areas[id].id == id) + return id end -- Re-order areas in table by their identifiers