~ chicken-core (chicken-5) 6044790def02eb63957c989795e6b1b9ebc76920
commit 6044790def02eb63957c989795e6b1b9ebc76920 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Thu Dec 15 11:15:33 2011 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Thu Dec 15 11:16:24 2011 +0100 disabled specialization for write-byte that could cause output to a closed port diff --git a/types.db b/types.db index 06ad8af5..5d8c746f 100644 --- a/types.db +++ b/types.db @@ -625,6 +625,14 @@ (write (#(procedure #:enforce) write (* #!optional output-port) undefined)) (display (#(procedure #:enforce) display (* #!optional output-port) undefined)) (write-char (#(procedure #:enforce) write-char (char #!optional output-port) undefined)) + +;;XXX Yes, that would be nice, but the output-port may be closed +#;(##sys#write-char-0 + (#(procedure #:enforce) ##sys#write-char-0 (char output-port) undefined) + ((char output-port) + (let ((#(tmp) #(1))) + ((##sys#slot (##sys#slot #(tmp) '2) '2) #(tmp) #(2))))) + (newline (#(procedure #:enforce) newline (#!optional output-port) undefined)) (with-input-from-file @@ -1248,11 +1256,7 @@ (read-string! (#(procedure #:enforce) read-string! (fixnum string #!optional input-port fixnum) fixnum)) (read-token (#(procedure #:enforce) read-token ((procedure (char) *) #!optional input-port) string)) (sprintf (#(procedure #:enforce) sprintf (string #!rest) string)) - -(write-byte (#(procedure #:enforce) write-byte (fixnum #!optional output-port) undefined) - ((fixnum port) (##sys#write-char-0 (integer->char #(1)) #(2))) - ((fixnum) (##sys#write-char-0 (integer->char #(1)) ##sys#standard-output))) - +(write-byte (#(procedure #:enforce) write-byte (fixnum #!optional output-port) undefined)) (write-line (#(procedure #:enforce) write-line (string #!optional output-port) undefined)) (write-string (#(procedure #:enforce) write-string (string #!optional * output-port) undefined))Trap