Changeset 5202


Ignore:
Timestamp:
12/19/03 18:43:01 (18 years ago)
Author:
piso
Message:

private LispObject slots => private Vector slots

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/StandardObject.java

    r5199 r5202  
    33 *
    44 * Copyright (C) 2003 Peter Graves
    5  * $Id: StandardObject.java,v 1.13 2003-12-19 18:29:03 piso Exp $
     5 * $Id: StandardObject.java,v 1.14 2003-12-19 18:43:01 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    2525{
    2626    private Layout layout;
    27     private LispObject slots; // A simple vector.
     27    private Vector slots;
    2828
    2929    protected StandardObject()
     
    3232    }
    3333
    34     protected StandardObject(LispClass cls, LispObject slots)
     34    protected StandardObject(LispClass cls, Vector slots)
    3535    {
    3636        layout = cls.getLayout();
     
    122122            catch (ClassCastException e) {
    123123                if (!(first instanceof StandardObject))
    124                     return signal(new TypeError(first, "standard object"));
     124                    return signal(new TypeError(first, Symbol.STANDARD_OBJECT));
    125125                if (!(second instanceof Layout))
    126126                    return signal(new TypeError(second, "layout"));
     
    139139            if (arg instanceof StandardObject)
    140140                return ((StandardObject)arg).layout.getLispClass();
    141             return signal(new TypeError(arg, "standard object"));
     141            return signal(new TypeError(arg, Symbol.STANDARD_OBJECT));
    142142        }
    143143    };
     
    151151            if (arg instanceof StandardObject)
    152152                return ((StandardObject)arg).slots;
    153             return signal(new TypeError(arg, "standard object"));
     153            return signal(new TypeError(arg, Symbol.STANDARD_OBJECT));
    154154        }
    155155    };
     
    163163        {
    164164            if (first instanceof StandardObject) {
    165                 ((StandardObject)first).slots = second;
    166                 return second;
    167             }
    168             return signal(new TypeError(first, "standard object"));
     165                if (second instanceof Vector) {
     166                    ((StandardObject)first).slots = (Vector) second;
     167                    return second;
     168                }
     169                return signal(new TypeError(second, Symbol.VECTOR));
     170            }
     171            return signal(new TypeError(first, Symbol.STANDARD_OBJECT));
    169172        }
    170173    };
     
    195198                return new StandardClass();
    196199            if (first instanceof LispClass) {
    197                 Symbol symbol = ((LispClass)first).getSymbol();
    198                 if (symbol == Symbol.STANDARD_GENERIC_FUNCTION)
    199                     return new GenericFunction((LispClass)first, second);
    200                 LispObject cpl = ((LispClass)first).getCPL();
    201                 while (cpl != NIL) {
    202                     LispObject obj = cpl.car();
    203                     if (obj == BuiltInClass.CONDITION)
    204                         return new Condition((LispClass)first, second);
    205                     cpl = cpl.cdr();
     200                if (second instanceof Vector) {
     201                    Symbol symbol = ((LispClass)first).getSymbol();
     202                    Vector slots = (Vector) second;
     203                    if (symbol == Symbol.STANDARD_GENERIC_FUNCTION)
     204                        return new GenericFunction((LispClass)first, slots);
     205                    LispObject cpl = ((LispClass)first).getCPL();
     206                    while (cpl != NIL) {
     207                        LispObject obj = cpl.car();
     208                        if (obj == BuiltInClass.CONDITION)
     209                            return new Condition((LispClass)first, slots);
     210                        cpl = cpl.cdr();
     211                    }
     212                    return new StandardObject((LispClass)first, slots);
    206213                }
    207                 return new StandardObject((LispClass)first, second);
    208             }
    209             return signal(new TypeError(first, "class"));
     214                return signal(new TypeError(second, Symbol.VECTOR));
     215            }
     216            return signal(new TypeError(first, Symbol.CLASS));
    210217        }
    211218    };
Note: See TracChangeset for help on using the changeset viewer.