mirror of
https://github.com/corda/corda.git
synced 2024-12-29 09:18:58 +00:00
Merge branch 'master' of dice:git/vm
This commit is contained in:
commit
59e87ddebf
@ -6,6 +6,8 @@ import java.lang.reflect.Field;
|
|||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
public final class Class <T> {
|
public final class Class <T> {
|
||||||
private static final int PrimitiveFlag = 1 << 4;
|
private static final int PrimitiveFlag = 1 << 4;
|
||||||
@ -367,10 +369,23 @@ public final class Class <T> {
|
|||||||
return (vmFlags & PrimitiveFlag) != 0;
|
return (vmFlags & PrimitiveFlag) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public InputStream getResourceAsStream(String path) {
|
public URL getResource(String path) {
|
||||||
if (! path.startsWith("/")) {
|
if (! path.startsWith("/")) {
|
||||||
path = new String(name, 0, name.length - 1, false) + "/" + path;
|
String name = new String(this.name, 0, this.name.length - 1, false);
|
||||||
|
int index = name.lastIndexOf('/');
|
||||||
|
if (index >= 0) {
|
||||||
|
path = name.substring(0, index) + "/" + path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return getClassLoader().getResource(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public InputStream getResourceAsStream(String path) {
|
||||||
|
URL url = getResource(path);
|
||||||
|
try {
|
||||||
|
return (url == null ? null : url.openStream());
|
||||||
|
} catch (IOException e) {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return getClassLoader().getResourceAsStream(path);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,15 +53,21 @@ public abstract class ResourceBundle {
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
ResourceBundle b = find(name, loader, null);
|
ResourceBundle b = find(name, loader, null);
|
||||||
|
|
||||||
if (locale.getLanguage() != null) {
|
if (locale.getLanguage() != null) {
|
||||||
name = name + "_" + locale.getLanguage();
|
name = name + "_" + locale.getLanguage();
|
||||||
b = find(name, loader, b);
|
ResourceBundle b2 = find(name, loader, b);
|
||||||
|
if (b2 != null) b = b2;
|
||||||
|
|
||||||
if (locale.getCountry() != null) {
|
if (locale.getCountry() != null) {
|
||||||
name = name + "_" + locale.getCountry();
|
name = name + "_" + locale.getCountry();
|
||||||
b = find(name, loader, b);
|
b2 = find(name, loader, b);
|
||||||
|
if (b2 != null) b = b2;
|
||||||
|
|
||||||
if (locale.getVariant() != null) {
|
if (locale.getVariant() != null) {
|
||||||
name = name + "_" + locale.getVariant();
|
name = name + "_" + locale.getVariant();
|
||||||
b = find(name, loader, b);
|
b2 = find(name, loader, b);
|
||||||
|
if (b2 != null) b = b2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
makefile
2
makefile
@ -144,7 +144,7 @@ jscheme-command = jscheme/REPL build/make.scm -main commandMain ""
|
|||||||
swt-command = $(call class-name,$(swt-input))
|
swt-command = $(call class-name,$(swt-input))
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build: $(executable)
|
build: $(executable) $(classpath-objects)
|
||||||
|
|
||||||
$(input): $(classpath-objects)
|
$(input): $(classpath-objects)
|
||||||
$(swt-input): $(classpath-objects)
|
$(swt-input): $(classpath-objects)
|
||||||
|
@ -1977,14 +1977,14 @@ run(Thread* t)
|
|||||||
} goto loop;
|
} goto loop;
|
||||||
|
|
||||||
case lshl: {
|
case lshl: {
|
||||||
int64_t b = popLong(t);
|
int32_t b = popInt(t);
|
||||||
int64_t a = popLong(t);
|
int64_t a = popLong(t);
|
||||||
|
|
||||||
pushLong(t, a << b);
|
pushLong(t, a << b);
|
||||||
} goto loop;
|
} goto loop;
|
||||||
|
|
||||||
case lshr: {
|
case lshr: {
|
||||||
int64_t b = popLong(t);
|
int32_t b = popInt(t);
|
||||||
int64_t a = popLong(t);
|
int64_t a = popLong(t);
|
||||||
|
|
||||||
pushLong(t, a >> b);
|
pushLong(t, a >> b);
|
||||||
@ -2700,7 +2700,7 @@ run(Thread* t, object method, object this_, ...)
|
|||||||
va_list a;
|
va_list a;
|
||||||
va_start(a, this_);
|
va_start(a, this_);
|
||||||
|
|
||||||
object r = run(t, method, this_, false, a);
|
object r = runv(t, method, this_, false, a);
|
||||||
|
|
||||||
va_end(a);
|
va_end(a);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user