summaryrefslogtreecommitdiffstats
path: root/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java
diff options
context:
space:
mode:
Diffstat (limited to 'linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java')
-rw-r--r--linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java8
1 files changed, 3 insertions, 5 deletions
diff --git a/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java b/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java
index 6ee82a6fddb..83110c0021e 100644
--- a/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java
+++ b/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java
@@ -212,11 +212,9 @@ public class GramSplitter {
/** Substring in code point space */
public UnicodeString substring(int start, int codePoints) {
- int offset = s.offsetByCodePoints(start, Math.min(codePoints, s.codePointCount(start, s.length())));
- if (offset < 0)
- return new UnicodeString(s.substring(start));
- else
- return new UnicodeString(s.substring(start, offset));
+ int cps = codePoints * 2 <= s.length() - start ? codePoints
+ : Math.min(codePoints, s.codePointCount(start, s.length()));
+ return new UnicodeString(s.substring(start, s.offsetByCodePoints(start, cps)));
}
/** Returns the position count code points after start (which may be past the end of the string) */