mirror of
https://github.com/zxing/zxing.git
synced 2024-11-10 04:54:04 -08:00
Workaround for Hotspot bug that lets tests run without -Xint, from Steven Parkes
git-svn-id: https://zxing.googlecode.com/svn/trunk@1526 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
b868c6e3ae
commit
073a3033fc
|
@ -148,7 +148,6 @@
|
|||
<assertions>
|
||||
<enable/>
|
||||
</assertions>
|
||||
<jvmarg value="-Xint"/> <!-- works around weird JIT bug in Java 6 -->
|
||||
<batchtest>
|
||||
<fileset dir="test/src">
|
||||
<include name="**/${subdir}/*BlackBox*TestCase.java"/>
|
||||
|
|
|
@ -172,8 +172,13 @@ public final class ReedSolomonDecoder {
|
|||
int denominator = 1;
|
||||
for (int j = 0; j < s; j++) {
|
||||
if (i != j) {
|
||||
denominator = field.multiply(denominator,
|
||||
GF256.addOrSubtract(1, field.multiply(errorLocations[j], xiInverse)));
|
||||
//denominator = field.multiply(denominator,
|
||||
// GF256.addOrSubtract(1, field.multiply(errorLocations[j], xiInverse)));
|
||||
// Above should work but fails on some Apple and Linux JDKs due to a Hotspot bug.
|
||||
// Below is a funny-looking workaround from Steven Parkes
|
||||
int term = field.multiply(errorLocations[j], xiInverse);
|
||||
int termPlus1 = ((term & 0x1) == 0) ? (term | 1) : (term & ~1);
|
||||
denominator = field.multiply(denominator, termPlus1);
|
||||
}
|
||||
}
|
||||
result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse),
|
||||
|
|
Loading…
Reference in a new issue