picolisp

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/picolisp.git/
Log | Files | Refs | README | LICENSE

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:
MCHANGES | 1+
Mersatz/fun.src | 16++++++++++------
Mersatz/picolisp.jar | 0
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.