mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-30 06:50:31 +02:00
micro-optimization in (web server)
* module/web/server.scm (extend-response): Micro-optimize to not mutate data, and to copy as little as possible.
This commit is contained in:
parent
24ea9f9c3a
commit
3c12fc3595
1 changed files with 4 additions and 2 deletions
|
@ -198,11 +198,13 @@ values."
|
|||
(display str port)))))
|
||||
|
||||
(define (extend-response r k v . additional)
|
||||
(define (extend-alist alist k v)
|
||||
(let ((pair (assq k alist)))
|
||||
(acons k v (if pair (delq pair alist) alist))))
|
||||
(let ((r (build-response #:version (response-version r)
|
||||
#:code (response-code r)
|
||||
#:headers
|
||||
(assoc-set! (copy-tree (response-headers r))
|
||||
k v)
|
||||
(extend-alist (response-headers r) k v)
|
||||
#:port (response-port r))))
|
||||
(if (null? additional)
|
||||
r
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue