Changeset 5208


Ignore:
Timestamp:
Sep 16, 2006, 11:45:10 PM (18 years ago)
Author:
Gary Byers
Message:

more changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/level-1/l1-streams.lisp

    r5202 r5208  
    481481
    482482(declaim (inline %ioblock-read-u8-byte))
    483 
    484483(defun %ioblock-read-u8-byte (ioblock)
    485484  (declare (optimize (speed 3) (safety 0)))
     
    497496            (io-buffer-buffer buf)) idx)))
    498497
     498(declaim (inline %ioblock-read-s8-byte))
     499(defun %ioblock-read-s8-byte (ioblock)
     500  (declare (optimize (speed 3) (safety 0)))
     501  (let* ((buf (ioblock-inbuf ioblock))
     502         (idx (io-buffer-idx buf))
     503         (limit (io-buffer-count buf)))
     504    (declare (fixnum idx limit))
     505    (when (= idx limit)
     506      (unless (%ioblock-advance ioblock t)
     507        (return-from %ioblock-read-s8-byte :eof))
     508      (setq idx (io-buffer-idx buf)
     509            limit (io-buffer-count buf)))
     510    (setf (io-buffer-idx buf) (the fixnum (1+ idx)))
     511    (aref (the (simple-array (signed-byte 8) (*))
     512            (io-buffer-buffer buf)) idx)))
     513
    499514(declaim (inline %ioblock-read-u16-byte))
    500 
    501515(defun %ioblock-read-u16-byte (ioblock)
    502516  (declare (optimize (speed 3) (safety 0)))
     
    513527    (aref (the (simple-array (unsigned-byte 16) (*))
    514528            (io-buffer-buffer buf)) idx)))
     529
     530(declaim (inline %ioblock-read-s16-byte))
     531(defun %ioblock-read-s16-byte (ioblock)
     532  (declare (optimize (speed 3) (safety 0)))
     533  (let* ((buf (ioblock-inbuf ioblock))
     534         (idx (io-buffer-idx buf))
     535         (limit (io-buffer-count buf)))
     536    (declare (fixnum idx limit))
     537    (when (= idx limit)
     538      (unless (%ioblock-advance ioblock t)
     539        (return-from %ioblock-read-s16-byte :eof))
     540      (setq idx (io-buffer-idx buf)
     541            limit (io-buffer-count buf)))
     542    (setf (io-buffer-idx buf) (the fixnum (1+ idx)))
     543    (aref (the (simple-array (signed-byte 16) (*))
     544            (io-buffer-buffer buf)) idx)))
     545
     546(declaim (inline %ioblock-read-u32-byte))
     547(defun %ioblock-read-u32-byte (ioblock)
     548  (declare (optimize (speed 3) (safety 0)))
     549  (let* ((buf (ioblock-inbuf ioblock))
     550         (idx (io-buffer-idx buf))
     551         (limit (io-buffer-count buf)))
     552    (declare (fixnum idx limit))
     553    (when (= idx limit)
     554      (unless (%ioblock-advance ioblock t)
     555        (return-from %ioblock-read-u32-byte :eof))
     556      (setq idx (io-buffer-idx buf)
     557            limit (io-buffer-count buf)))
     558    (setf (io-buffer-idx buf) (the fixnum (1+ idx)))
     559    (aref (the (simple-array (unsigned-byte 32) (*))
     560            (io-buffer-buffer buf)) idx)))
     561
     562(defun %private-ioblock-read-u16-byte (ioblock)
     563  (check-ioblock-owner ioblock)
     564  (%ioblock-read-u16-byte ioblock))
     565
     566(defun %locked-ioblock-read-u16-byte (ioblock)
     567  (check-ioblock-owner ioblock)
     568  (%ioblock-read-u16-byte ioblock))
     569
    515570
    516571(declaim (inline %ioblock-read-swapped-u16-byte))
     
    902957(defun %ioblock-write-u8-element (ioblock element)
    903958  (declare (optimize (speed 3) (safety 0)))
    904   (unless (eql element (logand #xff element))
    905     (report-bad-arg element '(unsigned-byte 8)))
     959  (let* ((buf (ioblock-outbuf ioblock))
     960         (idx (io-buffer-idx buf))
     961         (count (io-buffer-count buf))
     962         (limit (io-buffer-limit buf)))
     963    (declare (fixnum idx limit count))
     964    (when (= idx limit)
     965      (%ioblock-force-output ioblock nil)
     966      (setq idx 0 count 0))
     967    (setf (aref (the (simple-array (unsigned-byte 8) (*)) (io-buffer-buffer buf)) idx) element)
     968    (incf idx)
     969    (setf (io-buffer-idx buf) idx)
     970    (when (> idx count)
     971      (setf (io-buffer-count buf) idx))
     972    (setf (ioblock-dirty ioblock) t)
     973    element))
     974
     975(declaim (inline %ioblock-write-u16-element))
     976(defun %ioblock-write-u16-element (ioblock element)
     977  (declare (optimize (speed 3) (safety 0)))
    906978  (let* ((buf (ioblock-outbuf ioblock))
    907979         (idx (io-buffer-idx buf))
     
    9901062        (funcall encode-function char #'%ioblock-write-u8-element ioblock)))))
    9911063
    992 (defun %ioblock-write-byte (ioblock byte)
     1064(defun %ioblock-write-u8-byte (ioblock byte)
    9931065  (declare (optimize (speed 3) (safety 0)))
    994   (%ioblock-write-element ioblock byte))
     1066  (if (= byte (logand #xff byte))
     1067    (%ioblock-write-u8-element ioblock byte)
     1068    (error "Can't write ~s to stream ~s". (byte (ioblock-stream ioblock)))))
    9951069
    9961070 
Note: See TracChangeset for help on using the changeset viewer.