fix jpeg writing
Closes PR 11701
Merge to 5.1
(cherry picked from commit 16eb172e5a
)
This commit is contained in:
parent
4e9b5bcaef
commit
cc249dcdc2
|
@ -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)])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user