Changeset 11881


Ignore:
Timestamp:
05/16/09 09:24:51 (12 years ago)
Author:
ehuelsmann
Message:

Stop using CompiledClosure? as a proxy for
ClosureTemplateFunctions?: they instances
hold a copy of the closure array already.

Location:
trunk/abcl/src/org/armedbear/lisp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/Lisp.java

    r11866 r11881  
    11901190    throws ConditionThrowable
    11911191  {
    1192     ClosureTemplateFunction ctf = ((ClosureTemplateFunction) template).dup();
    1193     ctf.setContext(context);
    1194     CompiledClosure result = new CompiledClosure(ctf, context);
    1195     LispObject classBytes =
    1196       getf(ctf.getPropertyList(), Symbol.CLASS_BYTES, NIL);
    1197     if (classBytes != NIL)
    1198       result.setPropertyList(list(Symbol.CLASS_BYTES, classBytes));
    1199     return result;
     1192    return ((ClosureTemplateFunction)template).dup().setContext(context);
    12001193  }
    12011194
  • trunk/abcl/src/org/armedbear/lisp/Primitives.java

    r11783 r11881  
    24382438            value2 = T;
    24392439            LispObject name = ((CompiledClosure)arg).getLambdaName();
     2440            value3 = name != null ? name : NIL;
     2441          }
     2442        else if (arg instanceof ClosureTemplateFunction)
     2443          {
     2444            value1 = NIL;
     2445            value2 = T;
     2446            LispObject name = ((ClosureTemplateFunction)arg).getLambdaName();
    24402447            value3 = name != null ? name : NIL;
    24412448          }
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

    r11880 r11881  
    242242(defconstant +lisp-go-class+ "org/armedbear/lisp/Go")
    243243(defconstant +lisp-ctf-class+ "org/armedbear/lisp/ClosureTemplateFunction")
    244 (defconstant +lisp-compiled-closure-class+ "org/armedbear/lisp/CompiledClosure")
    245244(defconstant +lisp-compiled-function-class+ "org/armedbear/lisp/CompiledFunction")
    246245(defconstant +lisp-primitive-class+ "org/armedbear/lisp/Primitive")
     
    49854984           (emit-invokestatic +lisp-class+ "makeCompiledClosure"
    49864985                              (list +lisp-object+ +closure-binding-array+)
    4987                               +lisp-object+)
    4988            (emit 'checkcast +lisp-compiled-closure-class+))
     4986                              +lisp-object+))
    49894987                                        ; Stack: compiled-closure
    49904988          (t
Note: See TracChangeset for help on using the changeset viewer.