X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fstream.lisp;h=6631e6b61f6b2ff3ba3ae55968fc765aeb1c8a9b;hb=ee90e535c985f697c71d839083aed16710f846fd;hp=d2614b988a1adcd9aeb89ae91c858866e3d4980f;hpb=8cad02355db787b9f077b77f508329550ccd0db6;p=sbcl.git diff --git a/src/code/stream.lisp b/src/code/stream.lisp index d2614b9..6631e6b 100644 --- a/src/code/stream.lisp +++ b/src/code/stream.lisp @@ -1136,14 +1136,14 @@ (truly-the index (+ index copy))) ;; FIXME: why are we VECTOR-SAP'ing things here? what's the point? ;; and are there SB-UNICODE issues here as well? --njf, 2005-03-24 - (without-gcing - (system-area-ub8-copy (vector-sap string) - index - (if (typep buffer 'system-area-pointer) - buffer - (vector-sap buffer)) - start - copy))) + (with-pinned-objects (string buffer) + (system-area-ub8-copy (vector-sap string) + index + (if (typep buffer 'system-area-pointer) + buffer + (vector-sap buffer)) + start + copy))) (if (and (> requested copy) eof-error-p) (error 'end-of-file :stream stream) copy))) @@ -2058,7 +2058,7 @@ benefit of the function GET-OUTPUT-STREAM-STRING.") (funcall write-function stream (aref data i)))))) (if (and (fd-stream-p stream) (compatible-vector-and-stream-element-types-p data stream)) - (output-raw-bytes stream data offset-start offset-end) + (buffer-output stream data offset-start offset-end) (output-seq-in-loop))))))) seq)