commit 1d9bcb85ba272b3759ca7ecd530f514b5b90fe32
parent 26d500b90eec912588142bea979c6bc477636e87
Author: Alexander Burger <abu@software-lab.de>
Date: Sat, 28 Jan 2012 18:00:03 +0100
Bug in 'interface' (Ersatz)
Diffstat:
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/CHANGES b/CHANGES
@@ -1,4 +1,5 @@
* XXmmm12 picoLisp-3.0.10
+ Bug in 'interface' (Ersatz)
'locale' optional arguments
* 30dec11 picoLisp-3.0.9
diff --git a/ersatz/fun.src b/ersatz/fun.src
@@ -1,4 +1,4 @@
-# 09dec11abu
+# 28jan12abu
# (c) Software Lab. Alexander Burger
# Ersatz PicoLisp Functions
@@ -237,11 +237,15 @@ interface (i x y)
Any w;
if ((w = act.get(m.getName())) == null)
err(null, mkStr(m.getName()), "Can't invoke");
- Any[] v = new Any[arg.length];
- v[0] = new Symbol(o);
- for (int i = 0; i < arg.length; ++i)
- v[i] = new Symbol(arg[i]);
- return w.apply(null, false, v, v.length);
+ if (arg == null)
+ return w.apply(null, false, null, 0);
+ else {
+ Any[] v = new Any[arg.length];
+ v[0] = new Symbol(o);
+ for (int i = 0; i < arg.length; ++i)
+ v[i] = new Symbol(arg[i]);
+ return w.apply(null, false, v, v.length);
+ }
}
};
return new Symbol(java.lang.reflect.Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), c, h));
diff --git a/ersatz/picolisp.jar b/ersatz/picolisp.jar
Binary files differ.