mirror of
https://github.com/corda/corda.git
synced 2025-01-06 05:04:20 +00:00
Initial attempt at resolving SWT3.7 missing operatons in Avian. Everything seems to be working except floatToIntBits, hence the test case failing.
This commit is contained in:
parent
21610c1c9b
commit
b3850ac76d
@ -61,6 +61,10 @@ public class File implements Serializable {
|
|||||||
return isFile(path);
|
return isFile(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isAbsolute() {
|
||||||
|
return path.equals(toAbsolutePath(path));
|
||||||
|
}
|
||||||
|
|
||||||
private static native boolean canRead(String path);
|
private static native boolean canRead(String path);
|
||||||
|
|
||||||
public boolean canRead() {
|
public boolean canRead() {
|
||||||
|
@ -12,8 +12,10 @@ package java.lang;
|
|||||||
|
|
||||||
public final class Float extends Number {
|
public final class Float extends Number {
|
||||||
public static final Class TYPE = Class.forCanonicalName("F");
|
public static final Class TYPE = Class.forCanonicalName("F");
|
||||||
|
private static final int EXP_BIT_MASK = 0x7F800000;
|
||||||
private final float value;
|
private static final int SIGNIF_BIT_MASK = 0x007FFFFF;
|
||||||
|
|
||||||
|
private final float value;
|
||||||
|
|
||||||
public Float(String value) {
|
public Float(String value) {
|
||||||
this.value = parseFloat(value);
|
this.value = parseFloat(value);
|
||||||
@ -88,6 +90,17 @@ public final class Float extends Number {
|
|||||||
throw new NumberFormatException(s);
|
throw new NumberFormatException(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int floatToIntBits(float value) {
|
||||||
|
int result = floatToRawIntBits(value);
|
||||||
|
|
||||||
|
// Check for NaN based on values of bit fields, maximum
|
||||||
|
// exponent and nonzero significand.
|
||||||
|
if (((result & EXP_BIT_MASK) == EXP_BIT_MASK) && (result & SIGNIF_BIT_MASK) != 0) {
|
||||||
|
result = 0x7fc00000;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public static native int floatToRawIntBits(float value);
|
public static native int floatToRawIntBits(float value);
|
||||||
|
|
||||||
|
@ -19,6 +19,8 @@ public final class URL {
|
|||||||
private String host;
|
private String host;
|
||||||
private int port;
|
private int port;
|
||||||
private String file;
|
private String file;
|
||||||
|
private String path;
|
||||||
|
private String query;
|
||||||
private String ref;
|
private String ref;
|
||||||
|
|
||||||
public URL(String s) throws MalformedURLException {
|
public URL(String s) throws MalformedURLException {
|
||||||
@ -55,6 +57,14 @@ public final class URL {
|
|||||||
public String getRef() {
|
public String getRef() {
|
||||||
return ref;
|
return ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getPath() {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getQuery() {
|
||||||
|
return query;
|
||||||
|
}
|
||||||
|
|
||||||
public URLConnection openConnection() throws IOException {
|
public URLConnection openConnection() throws IOException {
|
||||||
return handler.openConnection(this);
|
return handler.openConnection(this);
|
||||||
@ -90,5 +100,13 @@ public final class URL {
|
|||||||
this.port = port;
|
this.port = port;
|
||||||
this.file = file;
|
this.file = file;
|
||||||
this.ref = ref;
|
this.ref = ref;
|
||||||
|
|
||||||
|
int q = file.lastIndexOf('?');
|
||||||
|
if (q != -1) {
|
||||||
|
this.query = file.substring(q + 1);
|
||||||
|
this.path = file.substring(0, q);
|
||||||
|
} else {
|
||||||
|
this.path = file;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -211,5 +211,32 @@ public class Floats {
|
|||||||
double d = (double) z;
|
double d = (double) z;
|
||||||
expect(d == 12345.0);
|
expect(d == 12345.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
int NaN = 0x7F800001;
|
||||||
|
int result = Float.floatToIntBits(NaN);
|
||||||
|
int expected = 0x7fc00000;
|
||||||
|
System.out.println("NaN integer is: " + result + " and we were expecting it to be: " + expected);
|
||||||
|
expect(result == expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
int number = 0x00800001;
|
||||||
|
int result = Float.floatToIntBits(number);
|
||||||
|
System.out.println("Number1 is: " + result);
|
||||||
|
|
||||||
|
expect(result == number);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
int number = 0x80800003;
|
||||||
|
int result = Float.floatToIntBits(number);
|
||||||
|
System.out.println("Number2 is: " + result);
|
||||||
|
expect(result == number);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user