From eb96f3ef06e9bc62a8124aebab321ec060b179aa Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Mon, 20 Apr 2009 20:53:47 +0000 Subject: [PATCH] Merge change from unicode-utf16-extfmt-branch that fixes the end index issue with WRITE-VECTOR. --- code/stream-vector-io.lisp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/code/stream-vector-io.lisp b/code/stream-vector-io.lisp index 07ae3985c..3fefa609b 100644 --- a/code/stream-vector-io.lisp +++ b/code/stream-vector-io.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/stream-vector-io.lisp,v 1.4 2009/04/10 17:21:35 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/stream-vector-io.lisp,v 1.5 2009/04/20 20:53:47 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -159,12 +159,14 @@ (unless (typep vector '(or string simple-numeric-vector)) (error "Wrong vector type ~a for write-vector on stream ~a." (type-of vector) stream)) - (endian-swap-vector vector start end swap-mask) - (unwind-protect - (write-sequence vector stream - :start (floor start octets-per-element) - :end (floor end octets-per-element)) - (endian-swap-vector vector start end swap-mask)) + (let ((start-idx (floor start octets-per-element)) + (end-idx (floor end octets-per-element))) + (endian-swap-vector vector start-idx end-idx swap-mask) + (unwind-protect + (write-sequence vector stream + :start start-idx + :end end-idx) + (endian-swap-vector vector start-idx end-idx swap-mask))) vector)) (* next-index octets-per-element))) -- GitLab