fix jpeg writing

Closes PR 11701
 Merge to 5.1
(cherry picked from commit 16eb172e5a)
This commit is contained in:
Matthew Flatt 2011-02-03 06:16:26 -07:00 committed by Eli Barzilay
parent 4e9b5bcaef
commit cc249dcdc2

View File

@ -562,11 +562,13 @@
(define (init-destination m) (define (init-destination m)
(void)) (void))
(define (empty-output-buffer m) (define (do-empty-output-buffer m all?)
(let* ([d (jpeg_compress_struct-dest m)] (let* ([d (jpeg_compress_struct-dest m)]
[b (jpeg_destination_mgr-buffer d)] [b (jpeg_destination_mgr-buffer d)]
[bstr (scheme_make_sized_byte_string b [bstr (scheme_make_sized_byte_string b
(- BUFFER-SIZE (jpeg_destination_mgr-free_in_buffer d)) (if all?
BUFFER-SIZE
(- BUFFER-SIZE (jpeg_destination_mgr-free_in_buffer d)))
0)] 0)]
[out (ptr-ref (jpeg_compress_struct-client_data m) _scheme)]) [out (ptr-ref (jpeg_compress_struct-client_data m) _scheme)])
(write-bytes bstr out) (write-bytes bstr out)
@ -574,8 +576,11 @@
(set-jpeg_destination_mgr-free_in_buffer! d BUFFER-SIZE) (set-jpeg_destination_mgr-free_in_buffer! d BUFFER-SIZE)
#t)) #t))
(define (empty-output-buffer m)
(do-empty-output-buffer m #t))
(define (term-destination m) (define (term-destination m)
(empty-output-buffer m) (do-empty-output-buffer m #f)
;; Maybe add support to optionally close port as early as possible? ;; Maybe add support to optionally close port as early as possible?
(when #f (when #f
(let ([in (ptr-ref (jpeg_decompress_struct-client_data m) _scheme)]) (let ([in (ptr-ref (jpeg_decompress_struct-client_data m) _scheme)])