Changeset 12088


Ignore:
Timestamp:
08/08/09 19:18:31 (12 years ago)
Author:
ehuelsmann
Message:

Register blocks with their compiland;
create a field in the variable-info structure to allow registration
of the block they belong to.

File:
1 edited

Legend:

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

    r12084 r12088  
    163163  (children 0       ; Number of local functions
    164164            :type fixnum) ; defined with with FLET, LABELS or LAMBDA
     165  blocks            ; TAGBODY, PROGV, BLOCK, etc. blocks
    165166  argument-register
    166167  closure-register
     
    272273                           ; lexical environment
    273274  used-non-locally-p
    274   (compiland *current-compiland*))
     275  (compiland *current-compiland*)
     276  block)
    275277
    276278(defstruct (var-ref (:constructor make-var-ref (variable)))
     
    370372(defstruct (block-node (:conc-name block-)
    371373                       (:include node)
    372                        (:constructor make-block-node (name)))
     374                       (:constructor %make-block-node (name)))
    373375  (exit (gensym))
    374376  target
     
    395397(defvar *blocks* ())
    396398
     399(defknown make-block-node (t) t)
     400(defun make-block-node (name)
     401  (let ((block (%make-block-node name)))
     402    (push block (compiland-blocks *current-compiland*))
     403    block))
     404
    397405(defun find-block (name)
    398406  (dolist (block *blocks*)
Note: See TracChangeset for help on using the changeset viewer.