premature flac decode deletion solved
This commit is contained in:
+9
-10
@@ -615,17 +615,16 @@
|
||||
(set! flac-file file)
|
||||
r))
|
||||
|
||||
;;; Releases the decoder once; stopping after EOF or an earlier stop is safe.
|
||||
(define (delete)
|
||||
(dbg-sound "flac-ffi 'delete")
|
||||
(if (eq? fl #f)
|
||||
(error "flac handler has already been deleted")
|
||||
(begin
|
||||
(FLAC__stream_decoder_finish fl)
|
||||
(FLAC__stream_decoder_delete fl)
|
||||
(set! fl #f)
|
||||
;; libFLAC cannot call the callbacks anymore after finish/delete,
|
||||
;; so the generated callback stubs can now be released.
|
||||
(set-box! callback-keepers null))))
|
||||
(when fl
|
||||
(dbg-sound "flac-ffi 'delete")
|
||||
(FLAC__stream_decoder_finish fl)
|
||||
(FLAC__stream_decoder_delete fl)
|
||||
(set! fl #f)
|
||||
;; libFLAC cannot call the callbacks anymore after finish/delete,
|
||||
;; so the generated callback stubs can now be released.
|
||||
(set-box! callback-keepers null)))
|
||||
|
||||
(define (process-single)
|
||||
(FLAC__stream_decoder_process_single fl))
|
||||
|
||||
Reference in New Issue
Block a user