From 7f0e25af79cf94cd213c6f580c98b2ec08487033 Mon Sep 17 00:00:00 2001 From: XU XIAOLONG <118816189+XXL2002@users.noreply.github.com> Date: Tue, 31 Mar 2026 10:26:19 +0800 Subject: [PATCH] fix long type overflow --- .../org/urbcomp/startdb/compress/elf/utils/Elf32Utils.java | 2 +- .../org/urbcomp/startdb/compress/elf/utils/Elf64Utils.java | 2 +- .../startdb/compress/elf/doubleprecision/ResultStructure.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/urbcomp/startdb/compress/elf/utils/Elf32Utils.java b/src/main/java/org/urbcomp/startdb/compress/elf/utils/Elf32Utils.java index bbc099d..5c7192b 100644 --- a/src/main/java/org/urbcomp/startdb/compress/elf/utils/Elf32Utils.java +++ b/src/main/java/org/urbcomp/startdb/compress/elf/utils/Elf32Utils.java @@ -74,7 +74,7 @@ private static int getSignificantCount(float v, int sp, int lastBetaStar) { float temp = v * get10iP(i); int tempInt = (int) temp; - while (tempInt != temp) { + while (tempInt != temp && tempInt != Integer.MAX_VALUE) { i++; temp = v * get10iP(i); tempInt = (int) temp; diff --git a/src/main/java/org/urbcomp/startdb/compress/elf/utils/Elf64Utils.java b/src/main/java/org/urbcomp/startdb/compress/elf/utils/Elf64Utils.java index 7fcbe1f..1a01349 100644 --- a/src/main/java/org/urbcomp/startdb/compress/elf/utils/Elf64Utils.java +++ b/src/main/java/org/urbcomp/startdb/compress/elf/utils/Elf64Utils.java @@ -74,7 +74,7 @@ private static int getSignificantCount(double v, int sp, int lastBetaStar) { double temp = v * get10iP(i); long tempLong = (long) temp; - while (tempLong != temp) { + while (tempLong != temp && tempLong != Long.MAX_VALUE) { // check overflow i++; temp = v * get10iP(i); tempLong = (long) temp; diff --git a/src/test/java/org/urbcomp/startdb/compress/elf/doubleprecision/ResultStructure.java b/src/test/java/org/urbcomp/startdb/compress/elf/doubleprecision/ResultStructure.java index d82ec7f..449227e 100644 --- a/src/test/java/org/urbcomp/startdb/compress/elf/doubleprecision/ResultStructure.java +++ b/src/test/java/org/urbcomp/startdb/compress/elf/doubleprecision/ResultStructure.java @@ -1,6 +1,6 @@ package org.urbcomp.startdb.compress.elf.doubleprecision; -import sun.misc.DoubleConsts; +// import sun.misc.DoubleConsts; import java.util.Comparator; import java.util.List; @@ -174,7 +174,7 @@ public double maxValue(List ld) { } public double minValue(List ld) { - double min = DoubleConsts.MAX_VALUE; + double min = Double.MAX_VALUE; for (Double aDouble : ld) { if (aDouble < min) { min = aDouble;