From 6cb334e058183d15ce0e5be23ac1bf2c4fd5c4f0 Mon Sep 17 00:00:00 2001 From: Markus Stefanko Date: Tue, 19 Dec 2017 14:24:58 +0700 Subject: [PATCH] avoid expensive regex checks for simple filters --- lime/tools/helpers/StringHelper.hx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lime/tools/helpers/StringHelper.hx b/lime/tools/helpers/StringHelper.hx index 6027af0f2..e70895967 100644 --- a/lime/tools/helpers/StringHelper.hx +++ b/lime/tools/helpers/StringHelper.hx @@ -72,7 +72,13 @@ class StringHelper { for (filter in exclude) { if (filter != "") { - + + if(filter == "*") return false; + if(StringTools.endsWith(filter, "*")) { + if(StringTools.startsWith(text, filter.substr(0, -1))) return false; + if(filter.substr(0, -1).indexOf("*") == -1) continue; + } + filter = StringTools.replace (filter, ".", "\\."); filter = StringTools.replace (filter, "*", ".*"); @@ -91,7 +97,13 @@ class StringHelper { for (filter in include) { if (filter != "") { - + + if(filter == "*") return true; + if(StringTools.endsWith(filter, "*")) { + if(StringTools.startsWith(text, filter.substr(0, -1))) return true; + if(filter.substr(0, -1).indexOf("*") == -1) continue; + } + filter = StringTools.replace (filter, ".", "\\."); filter = StringTools.replace (filter, "*", ".*");