Changeset 4330


Ignore:
Timestamp:
10/12/03 18:21:17 (19 years ago)
Author:
piso
Message:

Generic function support.

File:
1 edited

Legend:

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

    r4219 r4330  
    33 *
    44 * Copyright (C) 2003 Peter Graves
    5  * $Id: LispThread.java,v 1.19 2003-10-06 13:51:40 piso Exp $
     5 * $Id: LispThread.java,v 1.20 2003-10-12 18:21:17 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    192192    private static class StackFrame
    193193    {
    194         private final Functional functional;
     194        private final LispObject functional;
    195195        private final LispObject[] argv;
    196196
    197         public StackFrame(LispObject obj, LispObject[] argv)
    198         {
    199             functional = (Functional) obj;
     197        public StackFrame(LispObject functional, LispObject[] argv)
     198        {
     199            this.functional = functional;
    200200            this.argv = argv;
    201201        }
    202202
    203         public Functional getFunctional()
     203        public LispObject getFunctional()
    204204        {
    205205            return functional;
     
    270270                    for (int j = argv.length; j-- > 0;)
    271271                        obj = new Cons(argv[j], obj);
    272                     Functional functional = frame.getFunctional();
    273                     if (functional.getLambdaName() != null)
    274                         obj = new Cons(functional.getLambdaName(), obj);
     272                    LispObject functional = frame.getFunctional();
     273                    if (functional instanceof Functional &&
     274                        ((Functional)functional).getLambdaName() != null)
     275                        obj = new Cons(((Functional)functional).getLambdaName(), obj);
    275276                    else
    276277                        obj = new Cons(functional, obj);
     
    300301                    for (int j = argv.length; j-- > 0;)
    301302                        obj = new Cons(argv[j], obj);
    302                     Functional functional = frame.getFunctional();
    303                     if (functional.getLambdaName() != null)
    304                         obj = new Cons(functional.getLambdaName(), obj);
     303                    LispObject functional = frame.getFunctional();
     304                    if (functional instanceof Functional &&
     305                        ((Functional)functional).getLambdaName() != null)
     306                        obj = new Cons(((Functional)functional).getLambdaName(), obj);
    305307                    else
    306308                        obj = new Cons(functional, obj);
Note: See TracChangeset for help on using the changeset viewer.