From 0dca3df7d37e63da6d40f57d40e0310128ce3a9f Mon Sep 17 00:00:00 2001 From: vmishenev Date: Wed, 6 Apr 2022 00:59:50 +0300 Subject: [PATCH] Replace StringBuilder with Range --- plugins/base/src/main/kotlin/parsers/Parser.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/base/src/main/kotlin/parsers/Parser.kt b/plugins/base/src/main/kotlin/parsers/Parser.kt index 898a898b2e..ec55c321af 100644 --- a/plugins/base/src/main/kotlin/parsers/Parser.kt +++ b/plugins/base/src/main/kotlin/parsers/Parser.kt @@ -64,7 +64,8 @@ abstract class Parser { var isInCode = false val result = mutableListOf() - val buf = StringBuilder() + var rangeStart = 0 + var rangeEnd = 0 var currentOffset = 0 while (currentOffset < length) { @@ -83,16 +84,17 @@ abstract class Parser { countOfBackticks = 0 } if (!isInCode && startsWith(delimiter, currentOffset)) { - result.add(buf.toString()) - buf.clear() + result.add(substring(rangeStart, rangeEnd)) currentOffset += delimiter.length + rangeStart = currentOffset + rangeEnd = currentOffset continue } - buf.append(get(currentOffset)) + ++rangeEnd ++currentOffset } - result.add(buf.toString()) + result.add(substring(rangeStart, rangeEnd)) return result }