X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fprint.lisp;h=fd90bd2044b04b1e7358ac52c0f32c3561023a0a;hb=f2218c68ed978533fc46830ac81f4517fefe5a2a;hp=4676332e4926834faa0a04c4bbb000496fa865a7;hpb=425ce8cf75122dfb7242ffbf5d726e12fae24e58;p=sbcl.git diff --git a/src/code/print.lisp b/src/code/print.lisp index 4676332..fd90bd2 100644 --- a/src/code/print.lisp +++ b/src/code/print.lisp @@ -193,9 +193,11 @@ (push (list variable value) bind))) (unless (assoc 'stream bind) (push (list 'stream '*standard-output*) bind)) - `(let ,(nreverse bind) - ,@(when ignore `((declare (ignore ,@ignore)))) - (output-object ,object stream)))) + (once-only ((object object)) + `(let ,(nreverse bind) + ,@(when ignore `((declare (ignore ,@ignore)))) + (output-object ,object (out-synonym-of stream)) + ,object)))) (defun prin1 (object &optional stream) #!+sb-doc @@ -275,9 +277,10 @@ (push variable ignore)) (push (list variable value) bind))) (if bind - `(let ,(nreverse bind) - ,@(when ignore `((declare (ignore ,@ignore)))) - (stringify-object ,object)) + (once-only ((object object)) + `(let ,(nreverse bind) + ,@(when ignore `((declare (ignore ,@ignore)))) + (stringify-object ,object))) `(stringify-object ,object)))) (defun prin1-to-string (object)