From f6dead3e2ea62ed91fa536c5dc2c63b687af0723 Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Tue, 15 Nov 2011 12:30:53 -0800 Subject: [PATCH] %stream-read-sequence and %stream-write-sequence: fix case where (= start end) --- src/streams/gray/gray-stream-methods.lisp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/streams/gray/gray-stream-methods.lisp b/src/streams/gray/gray-stream-methods.lisp index 2b860b4..8d76422 100644 --- a/src/streams/gray/gray-stream-methods.lisp +++ b/src/streams/gray/gray-stream-methods.lisp @@ -99,11 +99,12 @@ (declaim (inline %read-sequence)) (defun %read-sequence (stream seq start end) (check-bounds seq start end) - (when (< start end) - (etypecase seq - (ub8-sarray (%read-into-simple-array-ub8 stream seq start end)) - (string (%read-into-string stream seq start end)) - (ub8-vector (%read-into-vector stream seq start end))))) + (if (= start end) + start + (etypecase seq + (ub8-sarray (%read-into-simple-array-ub8 stream seq start end)) + (string (%read-into-string stream seq start end)) + (ub8-vector (%read-into-vector stream seq start end))))) (declaim (inline read-sequence*)) (defun read-sequence* (stream sequence &key (start 0) end) @@ -162,12 +163,13 @@ (declaim (inline %write-sequence)) (defun %write-sequence (stream seq start end) (check-bounds seq start end) - (when (< start end) - (etypecase seq - (ub8-sarray (%write-simple-array-ub8 stream seq start end)) - (string (stream-write-string stream seq start end)) - (ub8-vector (%write-vector-ub8 stream seq start end)) - (vector (%write-vector stream seq start end))))) + (if (= start end) + seq + (etypecase seq + (ub8-sarray (%write-simple-array-ub8 stream seq start end)) + (string (stream-write-string stream seq start end)) + (ub8-vector (%write-vector-ub8 stream seq start end)) + (vector (%write-vector stream seq start end))))) (declaim (inline write-sequence*)) (defun write-sequence* (stream sequence &key (start 0) end) -- 2.11.4.GIT