mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-22 16:14:10 -08:00
Fix bugs that were found by FindBugs. Fix
https://github.com/konsoletyper/teavm/issues/46 https://github.com/konsoletyper/teavm/issues/45 https://github.com/konsoletyper/teavm/issues/44 https://github.com/konsoletyper/teavm/issues/42
This commit is contained in:
parent
9c2231f1cc
commit
eeddfd1298
|
@ -64,7 +64,7 @@ public class TBufferedInputStream extends TFilterInputStream {
|
|||
if (result > 0) {
|
||||
markpos = -1;
|
||||
pos = 0;
|
||||
count = result == -1 ? 0 : result;
|
||||
count = result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public class TFilterOutputStream extends TOutputStream {
|
|||
} catch (TIOException e) {
|
||||
// do nothing
|
||||
}
|
||||
close();
|
||||
out.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -200,7 +200,7 @@ public class TStringBuffer extends TAbstractStringBuilder implements TAppendable
|
|||
|
||||
@Override
|
||||
public TStringBuffer deleteCharAt(int index) {
|
||||
deleteCharAt(index);
|
||||
super.deleteCharAt(index);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -200,7 +200,7 @@ public class TStringBuilder extends TAbstractStringBuilder implements TAppendabl
|
|||
|
||||
@Override
|
||||
public TStringBuilder deleteCharAt(int index) {
|
||||
deleteCharAt(index);
|
||||
super.deleteCharAt(index);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ public class TDateFormatSymbols implements TSerializable, TCloneable {
|
|||
return false;
|
||||
}
|
||||
for (int j = 0; j < element.length; j++) {
|
||||
if (element[j] != element[j] && !(element[j].equals(element[j]))) {
|
||||
if (!(element[j].equals(element[j]))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,19 +54,21 @@ public class TBitSet extends TObject implements TCloneable, TSerializable {
|
|||
int[] ints = new int[(bytes.length + 3) / 4];
|
||||
int fullInts = bytes.length / 4;
|
||||
for (int i = 0; i < fullInts; ++i) {
|
||||
ints[i] = bytes[i * 4] | (bytes[i * 4 + 1] << 8) | (bytes[i * 4 + 2] << 16) | (bytes[i * 4 + 3] << 24);
|
||||
ints[i] = (bytes[i * 4] & 0xFF) | ((bytes[i * 4 + 1] & 0xFF) << 8) | ((bytes[i * 4 + 2] & 0xFF) << 16) |
|
||||
((bytes[i * 4 + 3] & 0xFF) << 24);
|
||||
}
|
||||
int lastInt = ints.length - 1;
|
||||
int lastByte = bytes[lastInt * 4];
|
||||
int lastByte = lastInt * 4;
|
||||
switch (bytes.length % 4) {
|
||||
case 3:
|
||||
ints[lastInt] = bytes[lastByte] | (bytes[lastByte + 1] << 8) | (bytes[lastByte + 2] << 16);
|
||||
ints[lastInt] = (bytes[lastByte] & 0xFF) | ((bytes[lastByte + 1] & 0xFF) << 8) |
|
||||
((bytes[lastByte + 2] & 0xFF) << 16);
|
||||
break;
|
||||
case 2:
|
||||
ints[lastInt] = bytes[lastByte] | (bytes[lastByte + 1] << 8);
|
||||
ints[lastInt] = (bytes[lastByte] & 0xFF) | ((bytes[lastByte + 1] & 0xFF) << 8);
|
||||
break;
|
||||
case 1:
|
||||
ints[lastInt] = bytes[lastByte];
|
||||
ints[lastInt] = bytes[lastByte] & 0xFF;
|
||||
break;
|
||||
}
|
||||
return new TBitSet(ints);
|
||||
|
@ -105,9 +107,9 @@ public class TBitSet extends TObject implements TCloneable, TSerializable {
|
|||
int fullLongs = length / 64;
|
||||
int i = 0;
|
||||
for (; i < fullLongs; ++i) {
|
||||
longs[i] = data[i * 2] | (data[i * 2 + 1] << 32);
|
||||
longs[i] = data[i * 2] | ((long)data[i * 2 + 1] << 32);
|
||||
}
|
||||
if (((31 + length) / 32) % 2 == 1) {
|
||||
if ((((31 + length) / 32) & 1) == 1) {
|
||||
longs[i] = data[i * 2];
|
||||
}
|
||||
return longs;
|
||||
|
|
|
@ -39,7 +39,7 @@ public class TRandom extends TObject implements TSerializable {
|
|||
}
|
||||
|
||||
public void nextBytes(byte[] bytes) {
|
||||
for (int i = 0; i < bytes.length; ) {
|
||||
for (int i = 0; i < bytes.length; ++i) {
|
||||
bytes[i] = (byte)next(8);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,11 +32,11 @@
|
|||
package org.teavm.classlib.java.util;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.BitSet;
|
||||
import org.junit.Test;
|
||||
|
||||
public class BitSetTest {
|
||||
|
||||
BitSet eightbs;
|
||||
|
||||
public BitSetTest() {
|
||||
|
@ -58,6 +58,23 @@ public class BitSetTest {
|
|||
assertEquals("New BitSet had invalid string representation: " + bs, "{}", bs.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void constructFromBytes() {
|
||||
for (int i = 4; i < 8; ++i) {
|
||||
byte[] bytes = new byte[i];
|
||||
Arrays.fill(bytes, (byte)0x80);
|
||||
BitSet bs = BitSet.valueOf(bytes);
|
||||
assertEquals("Wrong length of BitSet", i * 8, bs.length());
|
||||
for (int j = 0; j < bs.length(); ++j) {
|
||||
if (j % 8 == 7) {
|
||||
assertTrue("Expected that " + j + "th bit is to be set", bs.get(j));
|
||||
} else {
|
||||
assertFalse("Expected that " + j + "th bit is not to be set", bs.get(j));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void clonePerformed() {
|
||||
BitSet bs;
|
||||
|
@ -76,12 +93,9 @@ public class BitSetTest {
|
|||
|
||||
bs = (BitSet) eightbs.clone();
|
||||
bs.set(128);
|
||||
assertFalse("Different sized BitSet with higher bit set returned true",
|
||||
eightbs.equals(bs));
|
||||
assertFalse("Different sized BitSet with higher bit set returned true", eightbs.equals(bs));
|
||||
bs.clear(128);
|
||||
assertTrue(
|
||||
"Different sized BitSet with higher bits not set returned false",
|
||||
eightbs.equals(bs));
|
||||
assertTrue("Different sized BitSet with higher bits not set returned false", eightbs.equals(bs));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -53,8 +53,10 @@ public class AstIO {
|
|||
output.writeShort(method.getParameterDebugNames().size());
|
||||
for (Set<String> debugNames : method.getParameterDebugNames()) {
|
||||
output.writeShort(debugNames != null ? debugNames.size() : 0);
|
||||
for (String debugName : debugNames) {
|
||||
output.writeUTF(debugName);
|
||||
if (debugNames != null) {
|
||||
for (String debugName : debugNames) {
|
||||
output.writeUTF(debugName);
|
||||
}
|
||||
}
|
||||
}
|
||||
output.writeBoolean(method.isOriginalNamePreserved());
|
||||
|
|
|
@ -224,7 +224,7 @@ public class Debugger {
|
|||
}
|
||||
|
||||
public Breakpoint createBreakpoint(SourceLocation location) {
|
||||
synchronized (breakpoints) {
|
||||
synchronized (breakpointMap) {
|
||||
Breakpoint breakpoint = new Breakpoint(this, location);
|
||||
breakpoints.put(breakpoint, dummyObject);
|
||||
updateInternalBreakpoints(breakpoint);
|
||||
|
@ -366,7 +366,7 @@ public class Debugger {
|
|||
breakpointMap.remove(jsBreakpoint);
|
||||
}
|
||||
breakpoint.jsBreakpoints = new ArrayList<>();
|
||||
breakpoints.remove(this);
|
||||
breakpoints.remove(breakpoint);
|
||||
}
|
||||
|
||||
private void fireResumed() {
|
||||
|
|
|
@ -60,7 +60,7 @@ class InterferenceGraphBuilder {
|
|||
}
|
||||
for (TryCatchBlock tryCatch : block.getTryCatchBlocks()) {
|
||||
if (tryCatch.getExceptionVariable() != null) {
|
||||
live.remove(tryCatch.getExceptionVariable());
|
||||
live.remove(nodes.get(tryCatch.getExceptionVariable().getIndex()));
|
||||
}
|
||||
}
|
||||
for (int j = block.getInstructions().size() - 1; j >= 0; --j) {
|
||||
|
|
|
@ -63,7 +63,7 @@ public interface XMLHttpRequest extends JSObject {
|
|||
Document getResponseXML();
|
||||
|
||||
@JSProperty
|
||||
Integer getStatus();
|
||||
int getStatus();
|
||||
|
||||
@JSProperty
|
||||
String getStatusText();
|
||||
|
|
Loading…
Reference in New Issue
Block a user