Optimized read-http-line a bit in order to reduce gratuitous consing.

This commit is contained in:
2001-02-07 13:23:04 +00:00
parent 352f8b8113
commit 7d628b92da

View File

@ -13,6 +13,30 @@
;;;; ;;;;
;;;; ;;;;
(defun read-http-line (stream)
(declare (optimize (speed 3) (safety 0) (debug 0))
(type stream stream))
(let ((string (make-array 80 :element-type 'character :fill-pointer 0
:adjustable t)))
(declare (type string string))
(do ((char (read-char stream) (read-char stream)))
((char= char #\Newline) (coerce string 'simple-string))
(declare (type character char))
(unless (char= char #\Return)
(vector-push-extend char string)))))
#+NIL
(defun read-http-line (stream)
(declare (optimize (speed 3) (safety 0) (debug 0))
(type stream stream))
(with-output-to-string (out)
(do ((char (read-char stream) (read-char stream)))
((char= char #\Newline))
(declare (character char))
(unless (char= char #\Return)
(write-char char out)))))
#+NIL
(defun read-http-line (stream) (defun read-http-line (stream)
(let ((in-line (read-line stream nil nil))) (let ((in-line (read-line stream nil nil)))
(if in-line (if in-line