Software /
code /
prosody
Comparison
util/queue.lua @ 9902:3eea63a68e0f
util.queue: Update :items() to consistently use private data directly
It will perform better this way, and we were accessing private variables
already within the iterator.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 23 Mar 2019 08:52:57 +0000 |
parent | 9901:c8b75239846c |
child | 9925:8d0112413997 |
comparison
equal
deleted
inserted
replaced
9901:c8b75239846c | 9902:3eea63a68e0f |
---|---|
50 return nil; | 50 return nil; |
51 end | 51 end |
52 return t[tail]; | 52 return t[tail]; |
53 end; | 53 end; |
54 items = function (self) | 54 items = function (self) |
55 --luacheck: ignore 431/t | 55 return function (_, pos) |
56 return function (t, pos) | 56 if pos >= items then |
57 if pos >= t:count() then | |
58 return nil; | 57 return nil; |
59 end | 58 end |
60 local read_pos = tail + pos; | 59 local read_pos = tail + pos; |
61 if read_pos > t.size then | 60 if read_pos > self.size then |
62 read_pos = (read_pos%size); | 61 read_pos = (read_pos%size); |
63 end | 62 end |
64 return pos+1, t._items[read_pos]; | 63 return pos+1, t[read_pos]; |
65 end, self, 0; | 64 end, self, 0; |
66 end; | 65 end; |
67 consume = function (self) | 66 consume = function (self) |
68 return self.pop, self; | 67 return self.pop, self; |
69 end; | 68 end; |