On Thu, Dec 3, 2009 at 9:24 PM, logicmoo@gmail.com wrote:
With the execute(...) functions in Primitive.java
@Override public LispObject execute(LispObject first, LispObject second, LispObject third)
{ LispObject[] args = new LispObject[3]; args[0] = first; args[1] = second; args[2] = third; return execute(args); }
Should probably be transformed to
@Override public LispObject execute(LispObject first, LispObject second, LispObject third)
{ return execute(new LispObject[]{first,second,third}); }
To remove the redundant bounds checking of AASTORE
I believe that javac translates the second method to the exact same code as the first. Bounds checking can't be eliminated in Java as far as I know.
Alessio