diff options
author | Jon Bratseth <bratseth@gmail.com> | 2024-02-11 13:48:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-11 13:48:43 +0100 |
commit | fa1d6539897663718372b67db2d99647f6134e53 (patch) | |
tree | 936139f98148d1af1e691d2207eeb23080c4acfe /vespajlib/src/main/java/com/yahoo/tensor/impl/Label.java | |
parent | d905428a436779c8abc381e470b6a825a5cfa30c (diff) | |
parent | c28347c1ec5f67a25ae7804f9c2e0f1909c2137d (diff) |
Merge pull request #30239 from vespa-engine/balder/skip-int-optimalization
- Drop the optimization from long to int and just use long throughout.
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/impl/Label.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/impl/Label.java | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/impl/Label.java b/vespajlib/src/main/java/com/yahoo/tensor/impl/Label.java index 7c1e8646245..8933131fa53 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/impl/Label.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/impl/Label.java @@ -18,7 +18,7 @@ public class Label { private static final String[] SMALL_INDEXES = createSmallIndexesAsStrings(1000); - private final static Map<String, Integer> string2Enum = new ConcurrentHashMap<>(); + private final static Map<String, Long> string2Enum = new ConcurrentHashMap<>(); // Index 0 is unused, that is a valid positive number // 1(-1) is reserved for the Tensor.INVALID_INDEX @@ -33,7 +33,7 @@ public class Label { return asStrings; } - private static int addNewUniqueString(String s) { + private static long addNewUniqueString(String s) { synchronized (string2Enum) { if (numUniqeStrings >= uniqueStrings.length) { uniqueStrings = Arrays.copyOf(uniqueStrings, uniqueStrings.length*2); @@ -56,28 +56,25 @@ public class Label { return true; } - public static int toNumber(String s) { + public static long toNumber(String s) { if (s == null) { return Tensor.invalidIndex; } try { if (validNumericIndex(s)) { - return Integer.parseInt(s); + return Long.parseLong(s, 10); } } catch (NumberFormatException e) { } return string2Enum.computeIfAbsent(s, Label::addNewUniqueString); } - public static String fromNumber(int v) { + public static String fromNumber(long v) { if (v >= 0) { return asNumericString(v); } else { if (v == Tensor.invalidIndex) { return null; } - return uniqueStrings[-v]; + int index = -Convert.safe2Int(v); + return uniqueStrings[index]; } } - public static String fromNumber(long v) { - return fromNumber(Convert.safe2Int(v)); - } - } |