From 150f0a288c49541f1888939596a22e2b07af73cb Mon Sep 17 00:00:00 2001 From: Kyle Simpson Date: Wed, 15 Dec 2021 10:50:53 -0600 Subject: [PATCH 1/2] fixing performance bug (see #64) in Objective-C implementation --- NSString+minifyJSONString.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/NSString+minifyJSONString.m b/NSString+minifyJSONString.m index 8d99db5..0caddbe 100644 --- a/NSString+minifyJSONString.m +++ b/NSString+minifyJSONString.m @@ -5,6 +5,8 @@ // Created by Bödecs Tibor on 7/19/13. // Copyright (c) 2013 Bödecs Tibor. All rights reserved. // +// Patched by Kyle Simpson, 2021 +// #import "NSString+minifyJSONString.h" @@ -20,6 +22,7 @@ - (NSString *)minifyJSONString NSString *tmp2; NSMutableArray *new_str = [@[] mutableCopy]; int from = 0; + int prevFrom = 0; NSString *lc; NSString *rc; int lastIndex = 0; @@ -53,12 +56,13 @@ - (NSString *)minifyJSONString } [new_str addObject:tmp2]; } + prevFrom = from; from = lastIndex; if ( [tmp hasPrefix:@"\""] && !in_multiline_comment && !in_singleline_comment) { NSArray *_matches = [magic matchesInString:lc options:0 - range:NSMakeRange(0, lc.length)]; + range:NSMakeRange(prevFrom, lc.length)]; if (_matches.count > 0 ) { NSTextCheckingResult *_match = _matches[0]; From de5178778d89320fd3c0d3ce450d139138b02f0e Mon Sep 17 00:00:00 2001 From: Kyle Simpson Date: Tue, 21 Dec 2021 17:58:32 -0800 Subject: [PATCH 2/2] per #64, more performance tweaks --- NSString+minifyJSONString.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NSString+minifyJSONString.m b/NSString+minifyJSONString.m index 0caddbe..f0816c9 100644 --- a/NSString+minifyJSONString.m +++ b/NSString+minifyJSONString.m @@ -30,7 +30,7 @@ - (NSString *)minifyJSONString NSRegularExpression *tokenizer = [NSRegularExpression regularExpressionWithPattern:@"\"|(\\/\\*)|(\\*\\/)|(\\/\\/)|\n|\r" options:NSRegularExpressionCaseInsensitive error:nil]; - NSRegularExpression *magic = [NSRegularExpression regularExpressionWithPattern:@"(\\\\)*$" + NSRegularExpression *magic = [NSRegularExpression regularExpressionWithPattern:@"(\\\\)+$" options:NSRegularExpressionCaseInsensitive error:nil];