Changeset 14476


Ignore:
Timestamp:
04/24/13 12:51:08 (10 years ago)
Author:
rschlatte
Message:

remove cargo-culted layoutStandardGenericFunction

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

Legend:

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

    r14475 r14476  
    109109        }
    110110      };
    111 
    112   static Layout layoutStandardGenericFunction =
    113       new Layout(null,
    114                  list(Symbol.NAME,
    115                       Symbol.LAMBDA_LIST,
    116                       Symbol.REQUIRED_ARGS,
    117                       Symbol.OPTIONAL_ARGS,
    118                       Symbol.INITIAL_METHODS,
    119                       Symbol.METHODS,
    120                       Symbol.METHOD_CLASS,
    121                       Symbol._METHOD_COMBINATION,
    122                       Symbol.ARGUMENT_PRECEDENCE_ORDER,
    123                       Symbol.DECLARATIONS,
    124                       Symbol.CLASSES_TO_EMF_TABLE,
    125                       Symbol._DOCUMENTATION),
    126                  NIL)
    127       {
    128         @Override
    129         public LispClass getLispClass()
    130         {
    131           return STANDARD_GENERIC_FUNCTION;
    132         }
    133       };
    134 
    135  
    136111
    137112  public StandardClass()
     
    849824
    850825    // STANDARD-GENERIC-FUNCTION
    851     STANDARD_GENERIC_FUNCTION.setClassLayout(layoutStandardGenericFunction);
    852826    STANDARD_GENERIC_FUNCTION.setCPL(STANDARD_GENERIC_FUNCTION,
    853827                                     GENERIC_FUNCTION, METAOBJECT,
  • trunk/abcl/src/org/armedbear/lisp/StandardObject.java

    r14475 r14476  
    677677        // working yet.  allocate-funcallable-instance takes over later.
    678678        return new StandardGenericFunction();
    679       } else if (arg instanceof FuncallableStandardClass) {
    680         FuncallableStandardClass cls = (FuncallableStandardClass)arg;
    681         Layout layout = cls.getClassLayout();
    682         if (layout == null) {
    683           program_error("No layout for funcallable class " + cls.princToString() + ".");
     679      } else if (arg.typep(StandardClass.FUNCALLABLE_STANDARD_CLASS) != NIL) {
     680        LispObject l = Symbol.CLASS_LAYOUT.execute(arg);
     681        if (! (l instanceof Layout)) {
     682          program_error("Invalid class layout for funcallable class "
     683                        + arg.princToString() + ".");
    684684        }
    685         return new FuncallableStandardObject(cls, layout.getLength());
     685        return new FuncallableStandardObject((Layout)l);
    686686      } else if (arg instanceof StandardClass) {
    687687        StandardClass cls = (StandardClass)arg;
Note: See TracChangeset for help on using the changeset viewer.