Changeset 5427
- Timestamp:
- Oct 25, 2006, 7:36:00 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/level-1/l1-streams.lisp (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-1/l1-streams.lisp
r5418 r5427 476 476 (defun %bivalent-ioblock-read-u8-byte (ioblock) 477 477 (declare (optimize (speed 3) (safety 0))) 478 (if (ioblock-untyi-char ioblock) 479 (setf (ioblock-untyi-char ioblock) nil)) 478 (setf (ioblock-untyi-char ioblock) nil) 480 479 (let* ((buf (ioblock-inbuf ioblock)) 481 480 (idx (io-buffer-idx buf)) … … 1050 1049 (declare (optimize (speed 3) (safety 0))) 1051 1050 (check-ioblock-owner ioblock) 1052 (if (ioblock-untyi-char ioblock) 1053 (prog1 (%char-code (ioblock-untyi-char ioblock)) 1054 (setf (ioblock-untyi-char ioblock) nil)) 1051 (setf (ioblock-untyi-char ioblock) nil) 1055 1052 (let* ((buf (ioblock-inbuf ioblock)) 1056 1053 (idx (io-buffer-idx buf)) … … 1064 1061 (setf (io-buffer-idx buf) (the fixnum (1+ idx))) 1065 1062 (aref (the (simple-array (unsigned-byte 8) (*)) 1066 (io-buffer-buffer buf)) idx))) )1063 (io-buffer-buffer buf)) idx))) 1067 1064 1068 1065 (defun %private-ioblock-read-u8-byte (ioblock) … … 1074 1071 (declare (optimize (speed 3) (safety 0))) 1075 1072 (with-ioblock-input-lock-grabbed (ioblock) 1076 (if (ioblock-untyi-char ioblock) 1077 (prog1 (%char-code (ioblock-untyi-char ioblock)) 1078 (setf (ioblock-untyi-char ioblock) nil)) 1079 (let* ((buf (ioblock-inbuf ioblock)) 1080 (idx (io-buffer-idx buf)) 1081 (limit (io-buffer-count buf))) 1082 (declare (fixnum idx limit)) 1083 (when (= idx limit) 1084 (unless (%ioblock-advance ioblock t) 1085 (return-from %bivalent-locked-ioblock-read-u8-byte :eof)) 1086 (setq idx (io-buffer-idx buf) 1087 limit (io-buffer-count buf))) 1088 (setf (io-buffer-idx buf) (the fixnum (1+ idx))) 1089 (aref (the (simple-array (unsigned-byte 8) (*)) 1090 (io-buffer-buffer buf)) idx))))) 1073 (setf (ioblock-untyi-char ioblock) nil) 1074 (let* ((buf (ioblock-inbuf ioblock)) 1075 (idx (io-buffer-idx buf)) 1076 (limit (io-buffer-count buf))) 1077 (declare (fixnum idx limit)) 1078 (when (= idx limit) 1079 (unless (%ioblock-advance ioblock t) 1080 (return-from %bivalent-locked-ioblock-read-u8-byte :eof)) 1081 (setq idx (io-buffer-idx buf) 1082 limit (io-buffer-count buf))) 1083 (setf (io-buffer-idx buf) (the fixnum (1+ idx))) 1084 (aref (the (simple-array (unsigned-byte 8) (*)) 1085 (io-buffer-buffer buf)) idx)))) 1091 1086 1092 1087 (defun %locked-ioblock-read-u8-byte (ioblock) … … 1322 1317 (defun %encoded-ioblock-peek-char (ioblock) 1323 1318 (or (ioblock-untyi-char ioblock) 1324 (let* ((ch (funcall (ioblock-read-char-when-locked-function ioblock) )))1319 (let* ((ch (funcall (ioblock-read-char-when-locked-function ioblock) ioblock))) 1325 1320 (unless (eq ch :eof) 1326 1321 (setf (ioblock-untyi-char ioblock) ch)) … … 2341 2336 (inbuf (io-buffer-buffer in)) 2342 2337 (rbf (ioblock-read-byte-when-locked-function ioblock))) 2338 (setf (ioblock-untyi-char ioblock) nil) 2343 2339 (if (not (= (the fixnum (typecode inbuf)) 2344 2340 (the fixnum (typecode vector)))) … … 2417 2413 (unless (= 0 (the fixnum (ioblock-element-shift ioblock))) 2418 2414 (error "Can't read vector from stream ~s" (ioblock-stream ioblock))) 2415 (setf (ioblock-untyi-char ioblock) nil) 2419 2416 (do* ((i start) 2420 2417 (rbf (ioblock-read-byte-when-locked-function ioblock)) … … 2880 2877 (setf (ioblock-write-byte-function ioblock) 2881 2878 (cond ((= subtag target::subtag-u8-vector) 2882 (if character-p 2883 ;; The bivalent case, at least for now 2884 (progn 2885 (setf (ioblock-write-byte-when-locked-function ioblock) 2886 '%bivalent-ioblock-write-u8-byte) 2887 (case sharing 2888 (:private '%bivalent-private-ioblock-write-u8-byte) 2889 (:lock '%bivalent-locked-ioblock-write-u8-byte) 2890 (t '%bivalent-ioblock-write-u8-byte))) 2891 (progn 2879 (progn 2892 2880 (setf (ioblock-write-byte-when-locked-function ioblock) 2893 2881 '%ioblock-write-u8-byte) … … 2895 2883 (:private '%private-ioblock-write-u8-byte) 2896 2884 (:lock '%locked-ioblock-write-u8-byte) 2897 (t '%ioblock-write-u8-byte)))) )2885 (t '%ioblock-write-u8-byte)))) 2898 2886 ((= subtag target::subtag-s8-vector) 2899 2887 (setf (ioblock-write-byte-when-locked-function ioblock)
Note:
See TracChangeset
for help on using the changeset viewer.
