emul/src/main/java/java/lang/Class.java
changeset 424 aef4fd91e99c
parent 420 3497ecd097df
child 434 2c0646d78e68
     1.1 --- a/emul/src/main/java/java/lang/Class.java	Tue Jan 08 16:32:11 2013 +0100
     1.2 +++ b/emul/src/main/java/java/lang/Class.java	Thu Jan 10 20:15:11 2013 +0100
     1.3 @@ -25,6 +25,7 @@
     1.4  
     1.5  package java.lang;
     1.6  
     1.7 +import java.io.ByteArrayInputStream;
     1.8  import org.apidesign.bck2brwsr.emul.AnnotationImpl;
     1.9  import java.io.InputStream;
    1.10  import java.lang.annotation.Annotation;
    1.11 @@ -881,13 +882,14 @@
    1.12       */
    1.13       public InputStream getResourceAsStream(String name) {
    1.14          name = resolveName(name);
    1.15 -        ClassLoader cl = getClassLoader0();
    1.16 -        if (cl==null) {
    1.17 -            // A system class.
    1.18 -            return ClassLoader.getSystemResourceAsStream(name);
    1.19 -        }
    1.20 -        return cl.getResourceAsStream(name);
    1.21 -    }
    1.22 +        byte[] arr = getResourceAsStream0(name);
    1.23 +        return arr == null ? null : new ByteArrayInputStream(arr);
    1.24 +     }
    1.25 +     
    1.26 +     @JavaScriptBody(args = "name", body = 
    1.27 +         "return (vm.loadBytes) ? vm.loadBytes(name) : null;"
    1.28 +     )
    1.29 +     private static native byte[] getResourceAsStream0(String name);
    1.30  
    1.31      /**
    1.32       * Finds a resource with a given name.  The rules for searching resources
    1.33 @@ -925,7 +927,7 @@
    1.34       */
    1.35      public java.net.URL getResource(String name) {
    1.36          name = resolveName(name);
    1.37 -        ClassLoader cl = getClassLoader0();
    1.38 +        ClassLoader cl = null;
    1.39          if (cl==null) {
    1.40              // A system class.
    1.41              return ClassLoader.getSystemResource(name);
    1.42 @@ -989,9 +991,6 @@
    1.43          throw new SecurityException();
    1.44      }
    1.45      
    1.46 -    // Package-private to allow ClassLoader access
    1.47 -    native ClassLoader getClassLoader0();    
    1.48 -
    1.49      /**
    1.50       * Returns the {@code Class} representing the component type of an
    1.51       * array.  If this class does not represent an array class this method