premature flac decode deletion solved

This commit is contained in:
2026-10-30 09:17:54 +01:00
parent 1d9899c0d2
commit b1c6e3976a
6 changed files with 139 additions and 26 deletions
+9 -10
View File
@@ -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))