Changeset

8394:4892c22403d5

mod_storage_internal: Optimize truncation
author Kim Alvefur <zash@zash.se>
date Fri, 10 Nov 2017 09:44:30 +0100
parents 8393:b6a7b83f8d87
children 8395:fbb9a1c2120e
files plugins/mod_storage_internal.lua
diffstat 1 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_storage_internal.lua	Thu Nov 09 01:42:01 2017 +0100
+++ b/plugins/mod_storage_internal.lua	Fri Nov 10 09:44:30 2017 +0100
@@ -195,14 +195,15 @@
 			if query.reverse then
 				-- Before: { 1, 2, 3, 4, 5, }
 				-- After: { 1, 2, 3 }
-				while #items > query.truncate do
-					table.remove(items);
+				for i = #items, query.truncate + 1, -1 do
+					items[i] = nil;
 				end
 			else
 				-- Before: { 1, 2, 3, 4, 5, }
 				-- After: { 3, 4, 5 }
-				while #items > query.truncate do
-					table.remove(items, 1);
+				local offset = #items - query.truncate;
+				for i = 1, #items do
+					items[i] = items[i+offset];
 				end
 			end
 		end