2002/08/07 04:29:28
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:49:33 +0000 (06:49 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:49:33 +0000 (06:49 +0000)
darcs-hash:20040130064933-2ba56-d33ef625cafb243fa85fc57d01605283e1635c59.gz

CHANGES
src/org/xwt/Resources.java
src/org/xwt/Static.java

diff --git a/CHANGES b/CHANGES
index d3b01a5..7cfde9c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 
 06-Jul megacz Platform.java: removed WPAD detection, HTTP.Proxy => Proxy.
 
+06-Jul megacz Static.java, Resources.java: fixed xwt.static bug.
+
index c11562c..f193477 100644 (file)
@@ -55,8 +55,15 @@ public class Resources {
             if (subfiles[i].equals("CVS") || !validResourceName(subfiles[i])) continue;
             String name = prefix + subfiles[i];
             File file = new File(dir.getPath() + File.separatorChar + subfiles[i]);
-            if (file.isDirectory()) loadDirectory(file, name + File.separatorChar);
-            else bytes.put(name.replace(File.separatorChar, '.'), file);
+            if (file.isDirectory()) {
+                loadDirectory(file, name + File.separatorChar);
+            } else {
+                if (name.endsWith(".xwt")) {
+                    Static.createStatic(name.replace(File.separatorChar, '.'), false);
+                    usedPackages.put(JSObject.nodeNameToPackageName(name.replace('/', '.')), new Object());
+                }
+                bytes.put(name.replace(File.separatorChar, '.'), file);
+            }
         }
     }
 
@@ -112,8 +119,7 @@ public class Resources {
                     if (Log.on) Log.log(Resources.class, "templates have already been loaded into " + packageName + "; refusing to load " + name);
                 } else {
                     usedPackages.put(packageName, thisArchive);
-                    for(int i=0; i<name.length() && i != -1; i = name.indexOf('/', i + 1))
-                        Static.createStatic(name.substring(0, i).replace('/', '.'));
+                    Static.createStatic(name.replace('/', '.'), false);
                     Template.buildTemplate(zis, name.replace('/', '.'));
                 }
 
index cb7a510..0974666 100644 (file)
@@ -8,18 +8,18 @@ import org.mozilla.javascript.*;
 public class Static extends JSObject {
 
     public static Static getStatic(String resourcename) {
+        Template t = Template.getTemplate(resourcename, null);
+        if (t != null) t.link();
         return (Static)cache.get(resourcename);
     }
 
-    public static Static createStatic(String resourcename) {
+    public static Static createStatic(String resourcename, boolean isPackage) {
         Static ret = (Static)cache.get(resourcename);
-        if (ret == null) {
-            Template t = Template.getTemplate(resourcename, null);
-            if (t == null) return new Static(resourcename, true);
-            ret = new Static(resourcename, false);
-            t.link();
-            return ret;
-        }
+        if (ret != null) return ret;
+        if (resourcename.indexOf('.') != -1)
+            createStatic(resourcename.substring(0, resourcename.lastIndexOf('.')), true);
+        ret = new Static(resourcename, false);
+        cache.put(resourcename, ret);
         return ret;
     }