From: adam Date: Sat, 15 Jan 2005 13:42:30 +0000 (+0000) Subject: remove JS.call(JS[]), JS.getInputStream() X-Git-Tag: 01-July-2005~25 X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=commitdiff_plain;h=1de73c721bbd73f275ba85de292463cdd8a0fbc0 remove JS.call(JS[]), JS.getInputStream() darcs-hash:20050115134230-5007d-c0398ed7fe46bac91706d220f9b38a0b9827f2d3.gz --- diff --git a/src/org/ibex/core/Ibex.java b/src/org/ibex/core/Ibex.java index 7b27d14..bd133c7 100644 --- a/src/org/ibex/core/Ibex.java +++ b/src/org/ibex/core/Ibex.java @@ -45,8 +45,8 @@ public final class Ibex extends JS.Obj implements JS.Cloneable { Sub(JS key) { this.key = key; } public void put(JS key, JS val) throws JSExn { Ibex.this.put(JSU.S(JSU.toString(this.key) + "." + JSU.toString(key)), val); } public JS get(JS key) throws JSExn { return Ibex.this.get(JSU.S(JSU.toString(this.key) + "." + JSU.toString(key))); } - public JS call(JS[] args) throws JSExn { return Ibex.this.call(this.key, args); } public JS call(JS method, JS[] args) throws JSExn { + if (method == null) return super.call(null, args); return Ibex.this.call(JSU.S(JSU.toString(this.key) + "." + JSU.toString(method)), args); } } @@ -201,7 +201,7 @@ public final class Ibex extends JS.Obj implements JS.Cloneable { case "stream.parse.xml": if(args[0] == null) return null; new XMLHelper(args[1]).doParse(args[0]); return null; // FIXME backgrounding case "stream.parse.utf8": if(args[0] == null) return null; - try { return JSU.S(new String(InputStreamToByteArray.convert(args[0].getInputStream()))); } + try { return JSU.S(new String(InputStreamToByteArray.convert(JSU.getInputStream(args[0])))); } catch (Exception e) { Log.warn(this, e); } //#end break; @@ -324,29 +324,29 @@ public final class Ibex extends JS.Obj implements JS.Cloneable { callargs3[0] = JSU.S(c.getLocalName()); callargs3[1] = attrs; callargs3[2] = JSU.S(c.getUri()); - startElement.call(callargs3); + startElement.call(null, callargs3); } catch (JSExn jse) { throw new Wrapper(jse); } finally { callargs3[0] = callargs3[1] = callargs3[2] = null; } } public void endElement(Tree.Element c) throws XML.Exn { try { callargs2[0] = JSU.S(c.getLocalName()); callargs2[1] = JSU.S(c.getUri()); - endElement.call(callargs2); + endElement.call(null, callargs2); } catch (JSExn jse) { throw new Wrapper(jse); } finally { callargs2[0] = callargs2[1] = null; } } public void characters(char[] ch, int start, int length) throws XML.Exn { try { callargs1[0] = JSU.S(new String(ch, start, length)); - characters.call(callargs1); + characters.call(null, callargs1); } catch (JSExn jse) { throw new Wrapper(jse); } finally { callargs1[0] = null; } } public void whitespace(char[] ch, int start, int length) throws XML.Exn { try { callargs1[0] = JSU.S(new String(ch, start, length)); - whitespace.call(callargs1); + whitespace.call(null, callargs1); } catch (JSExn jse) { throw new Wrapper(jse); } finally { callargs1[0] = null; } } public void doParse(JS s) throws JSExn { try { - parse(new BufferedReader(new InputStreamReader(s.getInputStream()))); + parse(new BufferedReader(new InputStreamReader(JSU.getInputStream(s)))); } catch (Wrapper e) { throw e.wrapee; } catch (XML.Exn e) { @@ -386,16 +386,17 @@ public final class Ibex extends JS.Obj implements JS.Cloneable { } // FEATURE: This is a gross hack public InputStream getImage() throws JSExn { - try { - InputStream in = getInputStream(); + //try { + InputStream in = JSU.getInputStream(this); if (in != null) return in; - } catch (IOException e) { /* DELIBERATE */ } + //} catch (IOException e) { /* DELIBERATE */ } String[] exts = new String[] { ".png", ".jpeg", ".gif" }; - for (int i=0; i < exts.length; i++) - try { - InputStream in = parent.get(JSU.S(JSU.toString(parentkey) + exts[i])).getInputStream(); + for (int i=0; i < exts.length; i++) { + //try { + in = JSU.getInputStream(parent.get(JSU.S(JSU.toString(parentkey) + exts[i]))); if (in != null) return in; - } catch (IOException f) { /* DELIBERATE */ } + //} catch (IOException f) { /* DELIBERATE */ } + } return null; } public JS getStatic() throws JSExn { @@ -416,7 +417,8 @@ public final class Ibex extends JS.Obj implements JS.Cloneable { for(Blessing b = parent; b.parentkey != null; b = b.parent) s = JSU.str(b.parentkey) + "." + s; return s; } - public JS call(JS[] args) throws JSExn { + public JS call(JS method, JS[] args) throws JSExn { + if (method != null) return super.call(method, args); if (args.length != 1) throw new JSExn("can only call a template with one arg"); getStatic(); if (t == null) throw new JSExn("No such template " + JSU.str(parentkey)); @@ -431,7 +433,7 @@ public final class Ibex extends JS.Obj implements JS.Cloneable { return t; } // JS:FIXME: Blessing shouldn't need to roll its own JS.Clone implementation - public InputStream getInputStream() throws JSExn, IOException { return clonee.getInputStream(); } + //public InputStream getInputStream() throws JSExn, IOException { return clonee.getInputStream(); } } } diff --git a/src/org/ibex/core/Main.java b/src/org/ibex/core/Main.java index bf4e8f3..a870384 100644 --- a/src/org/ibex/core/Main.java +++ b/src/org/ibex/core/Main.java @@ -107,7 +107,7 @@ public class Main { if (Log.on) Log.info(Main.class, "invoking initial template"); try { callargs[0] = new Box(); - ibex.resolveString(startupTemplate, false).call(callargs); + ibex.resolveString(startupTemplate, false).call(null, callargs); } finally { callargs[0] = null; } return null; } }); diff --git a/src/org/ibex/core/Stream.java b/src/org/ibex/core/Stream.java index 4190748..c3f9ca0 100644 --- a/src/org/ibex/core/Stream.java +++ b/src/org/ibex/core/Stream.java @@ -145,7 +145,7 @@ public abstract class Stream extends JS.Obj implements JS.Cloneable { ((KnownLength.KnownLengthInputStream)is).getLength() : 0; callargs[0] = JSU.N(bytesDownloaded); callargs[1] = JSU.N(len); - callback.call(callargs); + callback.call(null, callargs); } finally { callargs[0] = callargs[1] = null; } return null; } }); diff --git a/src/org/ibex/core/Template.java b/src/org/ibex/core/Template.java index a59e99d..c9fe9a3 100644 --- a/src/org/ibex/core/Template.java +++ b/src/org/ibex/core/Template.java @@ -101,7 +101,7 @@ public class Template { b.putAndTriggerTraps(b.get(JSU.S("numchildren")), kid); } - if (script != null) JSU.cloneWithNewGlobalScope(script, pis).call(callempty); + if (script != null) JSU.cloneWithNewGlobalScope(script, pis).call(null, callempty); for(int i=0; keys != null && i < keys.length; i++) { if (keys[i] == null) continue; @@ -162,7 +162,7 @@ public class Template { public TemplateHelper(String sourceName, JS s, Ibex ibex) throws XML.Exn, IOException, JSExn { this.sourceName = sourceName; this.ibex = ibex; - InputStream is = s.getInputStream(); + InputStream is = JSU.getInputStream(s); Ibex.Blessing b = Ibex.Blessing.getBlessing(s).parent; while(b != null) { if(b.parentkey != null) initial_uri = JSU.toString(b.parentkey) + (initial_uri.equals("") ? "" : "." + initial_uri); @@ -173,7 +173,7 @@ public class Template { JS staticScript = parseScript(static_content, static_content_start); t.staticObject = new JS.Obj(); JS staticScope = new PerInstantiationScope(null, ibex, null, t.staticObject); - if (staticScript != null) JSU.cloneWithNewGlobalScope(staticScript, staticScope).call(callempty); + if (staticScript != null) JSU.cloneWithNewGlobalScope(staticScript, staticScope).call(null, callempty); } private JS parseScript(StringBuffer content, int content_start) throws IOException { diff --git a/src/org/ibex/graphics/Font.java b/src/org/ibex/graphics/Font.java index 8e29b22..8b80439 100644 --- a/src/org/ibex/graphics/Font.java +++ b/src/org/ibex/graphics/Font.java @@ -162,7 +162,7 @@ public class Font { try { Log.info(Font.class, "loading font " + JSU.str(res)); - InputStream is = res.getInputStream(); + InputStream is = JSU.getInputStream(res); byte[] fontstream = InputStreamToByteArray.convert(is); rt.free(loadedStreamAddr); loadedStreamAddr = rt.xmalloc(fontstream.length); diff --git a/src/org/ibex/graphics/Picture.java b/src/org/ibex/graphics/Picture.java index 0a92677..c8b5895 100644 --- a/src/org/ibex/graphics/Picture.java +++ b/src/org/ibex/graphics/Picture.java @@ -49,8 +49,8 @@ public class Picture { new java.lang.Thread() { public void run() { InputStream in = null; try { - in = b == null ? stream.getInputStream() : b.getImage(); - } catch (IOException e) { Log.error(Picture.class, e); + in = b == null ? JSU.getInputStream(stream) : b.getImage(); + //} catch (IOException e) { Log.error(Picture.class, e); } catch (JSExn e) { Log.error(Picture.class, e); } if (in == null) { Log.warn(Picture.class, "couldn't load image for stream " + stream.unclone()); return; }