/[cmucl]/src/code/macros.lisp
ViewVC logotype

Diff of /src/code/macros.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.25 by ram, Thu Jul 11 16:27:53 1991 UTC revision 1.26 by ram, Tue Nov 5 14:14:54 1991 UTC
# Line 443  Line 443 
443    consing when N is a trivial constant integer."    consing when N is a trivial constant integer."
444    (if (integerp n)    (if (integerp n)
445        (let ((dummy-list nil)        (let ((dummy-list nil)
446              (wendy (gensym)))              (wendy (gensym)))
447          ;; We build DUMMY-LIST, a list of variables to bind to useless          ;; We build DUMMY-LIST, a list of variables to bind to useless
448          ;; values, then we explicitly IGNORE those bindings and return          ;; values, then we explicitly IGNORE those bindings and return
449          ;; WENDY, the only thing we're really interested in right now.          ;; WENDY, the only thing we're really interested in right now.
450          (dotimes (i n)          (dotimes (i n)
451            (push (gensym) dummy-list))            (push (gensym) dummy-list))
452          `(multiple-value-bind (,@dummy-list ,wendy)          `(multiple-value-bind (,@dummy-list ,wendy)
453                                ,form                                ,form
454             (declare (ignore ,@dummy-list))             (declare (ignore ,@dummy-list))
455             ,wendy))             ,wendy))
456        `(nth ,n (multiple-value-list ,form))))        `(once-only (,n)
457             (case (the fixnum ,n)
458               (0 (nth-value 0 ,form))
459               (1 (nth-value 1 ,form))
460               (2 (nth-value 2 ,form))
461               (T (nth (the fixnum ,n) (multiple-value-list ,form)))))))
462    
463    
464  ;;;; SETF and friends.  ;;;; SETF and friends.

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

  ViewVC Help
Powered by ViewVC 1.1.5