Ignore:
Timestamp:
08/13/11 08:29:08 (10 years ago)
Author:
ehuelsmann
Message:

Store local functions in the parent compiland, since you can't
reach the function from the compiland, but the other way around works.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp

    r13473 r13484  
    885885         (compiland (make-compiland :name name :parent *current-compiland*))
    886886         (local-function (make-local-function :name name :compiland compiland)))
    887     (push compiland (compiland-children *current-compiland*))
     887    (push local-function (compiland-children *current-compiland*))
    888888    (when variable-name
    889889      (setf (local-function-variable local-function)
     
    10041004                                                       name (gensym "ANONYMOUS-LAMBDA-"))
    10051005                                             :lambda-expression lambda-form
    1006                                              :parent *current-compiland*)))
    1007              (push compiland (compiland-children *current-compiland*))
     1006                                             :parent *current-compiland*))
     1007                  (local-function (make-local-function :compiland compiland)))
     1008             (push local-function (compiland-children *current-compiland*))
    10081009             (multiple-value-bind (body decls)
    10091010                 (parse-body body)
     
    10151016                     (*current-compiland* compiland))
    10161017                 (p1-compiland compiland)))
    1017              (list 'FUNCTION compiland)))
     1018             (list 'FUNCTION local-function)))
    10181019          ((setf local-function (find-local-function (cadr form)))
    10191020           (dformat "p1-function local function ~S~%" (cadr form))
Note: See TracChangeset for help on using the changeset viewer.