diff --git a/code/extensions.lisp b/code/extensions.lisp index 6e9510ea95eaaa2cde20f575580f6c323e86a3a3..1f241381d080dbe2b4e8c2f0e5aa27cda5f42725 100644 --- a/code/extensions.lisp +++ b/code/extensions.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/extensions.lisp,v 1.17 1993/08/12 18:58:58 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/extensions.lisp,v 1.18 1993/08/12 19:58:17 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -463,6 +463,7 @@ (collect ((inlines) (forms) + (inits) (tests) (sets) (arg-vars) @@ -502,8 +503,10 @@ (when *profile-hash-cache* (let ((n-probe (symbolicate "*" name "-CACHE-PROBES*")) (n-miss (symbolicate "*" name "-CACHE-MISSES*"))) - (forms `(defvar ,n-probe 0)) - (forms `(defvar ,n-miss 0)) + (inits `(setq ,n-probe 0)) + (inits `(setq ,n-miss 0)) + (forms `(defvar ,n-probe)) + (forms `(defvar ,n-miss)) (forms `(declaim (type index ,n-miss ,n-probe))))) (let ((fun-name (symbolicate name "-CACHE-LOOKUP"))) @@ -554,12 +557,13 @@ default-values)) (undefined-value))) (forms `(,fun-name))) + + (inits `(unless (boundp ',var-name) + (setq ,var-name (make-array ,total-size)))) `(progn (defvar ,var-name) - (,init-form - (unless (boundp ',var-name) - (setq ,var-name (make-array ,total-size)))) + (,init-form ,@(inits)) (proclaim '(type (simple-vector ,total-size) ,var-name)) (proclaim '(inline ,@(inlines))) ,@(forms)