Merge branch 'master' of dice:git/vm

This commit is contained in:
Joel Dice 2007-09-14 08:18:35 -06:00
commit 59e87ddebf
4 changed files with 31 additions and 10 deletions

View File

@ -6,6 +6,8 @@ import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.lang.reflect.InvocationTargetException;
import java.io.InputStream;
import java.io.IOException;
import java.net.URL;
public final class Class <T> {
private static final int PrimitiveFlag = 1 << 4;
@ -367,10 +369,23 @@ public final class Class <T> {
return (vmFlags & PrimitiveFlag) != 0;
}
public InputStream getResourceAsStream(String path) {
public URL getResource(String path) {
if (! path.startsWith("/")) {
path = new String(name, 0, name.length - 1, false) + "/" + path;
}
return getClassLoader().getResourceAsStream(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;
}
}
}

View File

@ -53,15 +53,21 @@ public abstract class ResourceBundle {
{
try {
ResourceBundle b = find(name, loader, null);
if (locale.getLanguage() != null) {
name = name + "_" + locale.getLanguage();
b = find(name, loader, b);
ResourceBundle b2 = find(name, loader, b);
if (b2 != null) b = b2;
if (locale.getCountry() != null) {
name = name + "_" + locale.getCountry();
b = find(name, loader, b);
b2 = find(name, loader, b);
if (b2 != null) b = b2;
if (locale.getVariant() != null) {
name = name + "_" + locale.getVariant();
b = find(name, loader, b);
b2 = find(name, loader, b);
if (b2 != null) b = b2;
}
}
}

View File

@ -144,7 +144,7 @@ jscheme-command = jscheme/REPL build/make.scm -main commandMain ""
swt-command = $(call class-name,$(swt-input))
.PHONY: build
build: $(executable)
build: $(executable) $(classpath-objects)
$(input): $(classpath-objects)
$(swt-input): $(classpath-objects)

View File

@ -1977,14 +1977,14 @@ run(Thread* t)
} goto loop;
case lshl: {
int64_t b = popLong(t);
int32_t b = popInt(t);
int64_t a = popLong(t);
pushLong(t, a << b);
} goto loop;
case lshr: {
int64_t b = popLong(t);
int32_t b = popInt(t);
int64_t a = popLong(t);
pushLong(t, a >> b);
@ -2700,7 +2700,7 @@ run(Thread* t, object method, object this_, ...)
va_list a;
va_start(a, this_);
object r = run(t, method, this_, false, a);
object r = runv(t, method, this_, false, a);
va_end(a);