2003/06/12 17:57:36
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:01:01 +0000 (07:01 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:01:01 +0000 (07:01 +0000)
darcs-hash:20040130070101-2ba56-e42ee1290012c40c5f983a962a3ced95d0da642e.gz

Makefile
src/org/xwt/Box.java
src/org/xwt/ByteStream.java
src/org/xwt/Main.java

index 9b58464..9ad8b4c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,6 @@ cc_sources             := src/org/xwt/plat/$(platform).cc
 c_sources              := $(jpeg_c_sources:%.c=src/org/ijg/%.c)
 
 # outputs
-java_classes           := $(java_sources:src/%.java=bin/%.class)
 java_objects           := $(filter-out bin-$(platform)/org/xwt/plat/%, $(java_sources:src/%.java=bin-$(platform)/%.java.o))
 java_objects           += bin-$(platform)/org/xwt/plat/GCJ.java.o
 java_objects           += $(platform_java_sources:%=bin-$(platform)/org/xwt/plat/%.java.o)
@@ -53,11 +52,15 @@ PATH                   := jikes-1.18/bin:$(PATH)
 ## Platform-Neutral ###########################################################################
 
 ifneq ($(verbose),true)
-.SILENT: $(java_classes) $(cc_objects) $(java_objects) $(java_headers) all bin/org/xwt/builtin.xwar .bootclasspath .javac $(target_bin)
+.SILENT: $(cc_objects) $(java_objects) $(java_headers) all bin/org/xwt/builtin.xwar .bootclasspath .javac $(target_bin) compile
 silent := --silent
 endif
 
-compile: $(java_classes) bin/org/xwt/builtin.xwar
+compile: bin/org/xwt/builtin.xwar
+       echo "compiling   .java -> .class:"
+       mkdir -p bin
+       $(shell cat .javac) -classpath lib/libgcj-minimal.jar $(java_sources) -d bin/ 2>&1 | \
+               grep -v ^\\[read | sed s_^\\[write\ bin/__ | sed s_.class\\]_.java_ | sed "s_^_compiling   .java -> .class: src/_"
 
 # platforms
 all: Win32 Linux Java2 Darwin Carbon
@@ -83,12 +86,6 @@ jikes:
        cd jikes-1.18; ./configure --prefix=`pwd` && make && make install
        ln -sf jikes-1.18/bin/jikes .jikes
 
-$(java_classes): $(java_sources) .javac
-       echo "compiling   .java -> .class:"
-       mkdir -p bin
-       $(shell cat .javac) -classpath lib/libgcj-minimal.jar $(java_sources) -d bin/ 2>&1 | \
-               grep -v ^\\[read | sed s_^\\[write\ bin/__ | sed s_.class\\]_.java_ | sed "s_^_compiling   .java -> .class: src/_"
-
 bin/org/xwt/builtin.xwar: $(xwar_sources)
        mkdir -p bin/org/xwt
        cd src; $(jar) cf ../bin/org/xwt/builtin.xwar $(xwar_sources:src/%=%)
@@ -140,9 +137,9 @@ propose-patch:
 $(shell pwd)/gcc/install/bin/$(target)-gcj:
        make -C gcc
 
-# java_classes is here to force compilation of the .class files (they get used via -Ibin/) without
+# compile is here to force compilation of the .class files (they get used via -Ibin/) without
 # having the individual .o's depend on the .java's (otherwise every .o gets recompiled when one .java changes)
-gcj: $(gcc_path)/bin/$(target)-gcj $(java_classes) $(target_bin)
+gcj: $(gcc_path)/bin/$(target)-gcj compile $(target_bin)
 
 $(target_bin): $(java_objects) $(cc_objects) $(c_objects) bin-$(platform)/org/xwt/builtin.o
        @echo "linking        .o -> $(target_bin)"
@@ -250,7 +247,7 @@ Carbon: upstream/Carbon/include/Carbon upstream
                platform_link="$(gcc_path)/lib/libgcj.a -Xlinker -framework -Xlinker Carbon" \
                platform_java_sources="POSIX Carbon"
 
-Java2: $(java_classes) bin/org/xwt/builtin.xwar
+Java2: compile bin/org/xwt/builtin.xwar
        echo -e "\\n=== Java2 ========================================="
        echo "archiving  .class -> .jar"
        mkdir -p bin-Java2
index cba4f14..c53ccc4 100644 (file)
@@ -100,7 +100,7 @@ public final class Box extends JS.Scope {
     static Hash imageToNameMap = new Hash();
 
     /** the empty object, used for get-traps */
-    private static JS.Array emptyobj = new JS.Array();
+    private static Array emptyobj = new Array();
 
 
     // Instance Data: Templates ////////////////////////////////////////////////////////
@@ -263,13 +263,13 @@ public final class Box extends JS.Scope {
     // Instance Data: IndexOf  ////////////////////////////////////////////////////////////
 
     /** The indexof() Function; created lazily */
-    public JS.Function indexof = null;
-    public JS.Function indexof() { if (indexof == null) indexof = new IndexOf(); return indexof; }
+    public JS.Callable indexof = null;
+    public JS.Callable indexof() { if (indexof == null) indexof = new IndexOf(); return indexof; }
 
     /** a trivial private class to serve as the box.indexof function object */
-    private class IndexOf extends JS.Function {
-        public IndexOf() { super(-1, "java", null, null); this.setSeal(true); }
-        public Object _call(JS.Array args) throws JS.Exn {
+    private class IndexOf extends JS.Callable {
+        public IndexOf() { this.setSeal(true); }
+        public Object call(Array args) throws JS.Exn {
             if (args.length() != 1 || args.elementAt(0) == null || !(args.elementAt(0) instanceof Box)) return new Integer(-1);
             Box b = (Box)args.elementAt(0);
             if (b.getParent() != Box.this) {
@@ -424,7 +424,7 @@ public final class Box extends JS.Scope {
     }
 
     /** loads the image described by string str, possibly blocking for a network load */
-    static ImageDecoder getImage(String str, final Function callback) {
+    static ImageDecoder getImage(String str, final JS.Callable callback) {
 
         if (str.indexOf(':') == -1) {
             String s = str;
@@ -460,10 +460,10 @@ public final class Box extends JS.Scope {
                             if (ret != -1) bytesDownloaded += ret;
                             if (clear && callback != null) {
                                 clear = false;
-                                ThreadMessage.newthread(new JS.Function(-1, "java", null, null) {
-                                        public Object _call(JS.Array args_) throws JS.Exn {
+                                ThreadMessage.newthread(new JS.Callable() {
+                                        public Object call(Array args_) throws JS.Exn {
                                             try {
-                                               JS.Array args = new JS.Array();
+                                               Array args = new Array();
                                                args.addElement(new Double(bytesDownloaded));
                                                args.addElement(new Double(contentLength));
                                                callback.call(args);
@@ -518,7 +518,7 @@ public final class Box extends JS.Scope {
         } else {
             image = getPicture(s);
             if (image == null) {
-                if (Log.on) Log.log(Box.class, "unable to load image " + s + " at " + JS.getCurrentFunctionSourceName());
+                if (Log.on) Log.log(Box.class, "unable to load image " + s + " at " + Context.getCurrentSourceNameAndLine());
                 return;
            }
             if (sizetoimage) syncSizeToImage();
@@ -539,7 +539,7 @@ public final class Box extends JS.Scope {
             if (border == null) {
                 ImageDecoder id = getImage(s, null);
                 if (id == null) {
-                    if (Log.on) Log.log(this, "unable to load border image " + s + " at " + JS.getCurrentFunctionSourceName());
+                    if (Log.on) Log.log(this, "unable to load border image " + s + " at " + Context.getCurrentSourceNameAndLine());
                     return;
                 }
                 int[] data = id.getData();
@@ -634,7 +634,7 @@ public final class Box extends JS.Scope {
     }
 
     /** creates a new box from an anonymous template; <tt>ids</tt> is passed through to Template.apply() */
-    Box(Template anonymous, Vec pboxes, Vec ptemplates, Function callback, int numerator, int denominator) {
+    Box(Template anonymous, Vec pboxes, Vec ptemplates, JS.Callable callback, int numerator, int denominator) {
         super(null);
         set(dmax, 0, Integer.MAX_VALUE);
         set(dmax, 1, Integer.MAX_VALUE);
@@ -646,7 +646,7 @@ public final class Box extends JS.Scope {
 
     /** creates a new box from an unresolved templatename and an importlist; use "box" for an untemplatized box */
     public Box(String templatename, String[] importlist) { this(templatename, importlist, null); }
-    public Box(String templatename, String[] importlist, Function callback) {
+    public Box(String templatename, String[] importlist, JS.Callable callback) {
         super(null);
         set(dmax, 0, Integer.MAX_VALUE);
         set(dmax, 1, Integer.MAX_VALUE);
@@ -711,12 +711,12 @@ public final class Box extends JS.Scope {
             for(Box cur = this; cur != null && (cur == this || cur == this.getParent()); cur = cur.getParent()) {
                 cur.dirty(pos(0) + min(oldsize(0) - bw, size(0) - bw),
                           pos(1),
-                          Math.abs(oldsize(0) - size(0)) + bw,
+                          java.lang.Math.abs(oldsize(0) - size(0)) + bw,
                           max(oldsize(1), size(1)));
                 cur.dirty(pos(0),
                           pos(1) + min(oldsize(1) - bh, size(1) - bh),
                           max(oldsize(0), size(0)),
-                          Math.abs(oldsize(1) - size(1)) + bh);
+                          java.lang.Math.abs(oldsize(1) - size(1)) + bh);
             }
             
         // SLOWPATH: dirty ourselves, as well as our former position on our parent
@@ -741,11 +741,11 @@ public final class Box extends JS.Scope {
         if (++surface.sizePosChangesSinceLastRender >= 500) {
             if (surface.sizePosChangesSinceLastRender == 500) {
                 if (Log.on) Log.log(this, "Warning, more than 500 SizeChange/PosChange traps triggered since last complete render");
-                if (Log.on) Log.log(this, "    interpreter is at " + JS.getCurrentFunctionSourceName());
+                if (Log.on) Log.log(this, "    interpreter is at " + Context.getCurrentSourceNameAndLine());
            /*
                 try {
                     Trap t = sizechange ? Trap.getTrap(this, "SizeChange") : Trap.getTrap(this, "PosChange");
-                    InterpretedFunction f = (InterpretedFunction)t.f;
+                    InterpretedJS.Callable f = (InterpretedJS.Callable)t.f;
                     if (Log.on) Log.log(this, "Current trap is at " + f.getSourceName() + ":" + f.getLineNumbers()[0]);
                 } catch (Throwable t) { }
            */
@@ -1074,10 +1074,10 @@ public final class Box extends JS.Scope {
     public void put(int i, Object value) {
 
         if (value != null && !(value instanceof Box)) {
-            if (Log.on) Log.log(this, "attempt to set a numerical property on a box to anything other than a box at " + JS.getCurrentFunctionSourceName());
+            if (Log.on) Log.log(this, "attempt to set a numerical property on a box to anything other than a box at " + Context.getCurrentSourceNameAndLine());
 
         } else if (redirect == null) {
-            if (Log.on) Log.log(this, "attempt to add/remove children to/from a node with a null redirect at " +  JS.getCurrentFunctionSourceName());
+            if (Log.on) Log.log(this, "attempt to add/remove children to/from a node with a null redirect at " +  Context.getCurrentSourceNameAndLine());
         } else if (redirect != this) {
             Box b = value == null ? (Box)redirect.get(i) : (Box)value;
             redirect.put(i, value);
@@ -1091,7 +1091,7 @@ public final class Box extends JS.Scope {
             }
 
         } else if (value instanceof RootProxy) {
-            if (Log.on) Log.log(this, "attempt to reparent a box via its proxy object at " + JS.getCurrentFunctionSourceName());
+            if (Log.on) Log.log(this, "attempt to reparent a box via its proxy object at " + Context.getCurrentSourceNameAndLine());
 
         } else {
             Box newnode = (Box)value;
@@ -1100,7 +1100,7 @@ public final class Box extends JS.Scope {
             for(Box cur = newnode.getParent(); cur != null; cur = cur.getParent())
                 if (cur.redirect == newnode) {
                     if (Log.on) Log.log(this, "attempt to move a box that is the target of a redirect at "+
-                                       JS.getCurrentFunctionSourceName());
+                                       Context.getCurrentSourceNameAndLine());
                     return;
                 }
 
@@ -1108,7 +1108,7 @@ public final class Box extends JS.Scope {
             for(Box cur = this; cur != null; cur = cur.getParent())
                 if (cur == newnode) {
                     if (Log.on) Log.log(this, "attempt to make a node a parent of its own ancestor at " +
-                                       JS.getCurrentFunctionSourceName());
+                                       Context.getCurrentSourceNameAndLine());
                     if (Log.on) Log.log(this, "box == " + this + "  ancestor == " + newnode);
                     return;
                 }
@@ -1188,7 +1188,7 @@ public final class Box extends JS.Scope {
         Object ret = super.get(name);
         if (name.startsWith("$") && ret == null)
             if (Log.on) Log.log(this, "WARNING: attempt to access " + name + ", but no child with id=\"" + name.substring(1) + "\" found; " +
-                                JS.getFileAndLine());
+                                Context.getCurrentSourceNameAndLine());
         return ret;
     }
 
@@ -1210,14 +1210,14 @@ public final class Box extends JS.Scope {
        String name = (String)name_;
        if (name == null) return;  // FIXME, shouldn't be necessary
         if (name.startsWith("xwt_")) {
-            if (Log.on) Log.log(this, "attempt to set reserved property " + name + " at " + JS.getFileAndLine());
+            if (Log.on) Log.log(this, "attempt to set reserved property " + name + " at " + Context.getCurrentSourceNameAndLine());
             return;
        }
 
         if (!ignoretraps && traps != null) {
             Trap t = (Trap)traps.get(name);
             if (t != null) {
-                JS.Array arg = new JS.Array();
+                Array arg = new Array();
                arg.addElement(value);
                 t.perform(arg);
                 arg.setElementAt(null, 0);
@@ -1235,19 +1235,19 @@ public final class Box extends JS.Scope {
         }
 
         if (name.charAt(0) == '_') {
-            if (value != null && !(value instanceof Function)) {
+            if (value != null && !(value instanceof JS.Callable)) {
                 if (Log.on) Log.log(this, "attempt to put a non-function value (" + value + ") to " +
-                                   name + " at " + JS.getFileAndLine());
+                                   name + " at " + Context.getCurrentSourceNameAndLine());
             } else if (name.charAt(1) == '_') {
                 name = name.substring(2).intern();
                 Trap t = Trap.getTrap(this, name);
                 if (t != null) t.delete();
-                if (value != null) Trap.addTrap(this, name, ((Function)value), true, rp);
+                if (value != null) Trap.addTrap(this, name, ((CompiledFunction)value), true, rp);
             } else {
                 name = name.substring(1).intern();
                 Trap t = Trap.getTrap(this, name);
                 if (t != null) t.delete();
-                if (value != null) Trap.addTrap(this, name, ((Function)value), false, rp);
+                if (value != null) Trap.addTrap(this, name, ((CompiledFunction)value), false, rp);
             }
             return;
         }
index 004c2a3..f1e6fcb 100644 (file)
@@ -101,15 +101,15 @@ public class ByteStream extends JS.Obj {
         os.close();
     }
 
-    private final JS.Function getDOM = new JS.Function(-1, "java", null, null) {
-            public Object _call(JS.Array args) throws JS.Exn {
+    private final JS.Callable getDOM = new JS.Callable() {
+            public Object call(Array args) throws JS.Exn {
                 if (args.length() != 0) return null;
                 return new XMLHelper().doParse();
             }
         };
 
-    private final JS.Function getUTF = new JS.Function(-1, "java", null, null) {
-            public Object _call(JS.Array args) throws JS.Exn {
+    private final JS.Callable getUTF = new JS.Callable() {
+            public Object call(Array args) throws JS.Exn {
                 if (args.length() != 0) return null;
                 try {
                     CharArrayWriter caw = new CharArrayWriter();
index a29af2e..fa86392 100644 (file)
@@ -1,7 +1,6 @@
 // Copyright 2002 Adam Megacz, see the COPYING file for licensing [GPL]
 package org.xwt;
 
-import java.lang.reflect.*;
 import java.applet.*;
 import java.net.*;
 import java.util.*;
@@ -102,8 +101,8 @@ public class Main {
             
             if (Log.on) Log.log(Main.class, "instantiating " + initialTemplate);
             final String initialTemplate_f = initialTemplate;
-            ThreadMessage.newthread(new JS.Function(-1, "java", null, null) {
-                    public Object _call(JS.Array args) throws JS.Exn {
+            ThreadMessage.newthread(new JS.Callable() {
+                    public Object call(Array args) throws JS.Exn {
                         new Box(initialTemplate_f, null);
                        doneInitializing = true;
                        if (Surface.allSurfaces.size() == 0) {