@@ -421,9 +421,9 @@ impl MzDec {
421421
422422 #[ unsafe( no_mangle) ]
423423 extern "C" fn source_fill_buffer (
424- codec_info : & mut mozjpeg_sys:: jpeg_decompress_struct ,
424+ _codec_info : * mut mozjpeg_sys:: jpeg_decompress_struct ,
425425 custom_state : * mut c_void ,
426- suspend_io : & mut bool ,
426+ _suspend_io : * mut bool ,
427427 ) -> bool {
428428 if custom_state. is_null ( ) {
429429 return false ;
@@ -470,7 +470,7 @@ impl MzDec {
470470
471471 #[ unsafe( no_mangle) ]
472472 extern "C" fn source_skip_bytes (
473- codec_info : & mut mozjpeg_sys:: jpeg_decompress_struct ,
473+ _codec_info : * mut mozjpeg_sys:: jpeg_decompress_struct ,
474474 custom_state : * mut c_void ,
475475 mut byte_count : c_long ,
476476 ) -> bool {
@@ -480,7 +480,7 @@ impl MzDec {
480480 if byte_count > 0 {
481481 // Re-derive decoder/source_manager references each iteration to avoid
482482 // holding &mut MzDec across the source_fill_buffer call (which also
483- // derives &mut MzDec from custom_state, causing mutable aliasing UB ).
483+ // derives &mut MzDec from custom_state).
484484 loop {
485485 let decoder = unsafe { & mut * ( custom_state as * mut MzDec ) } ;
486486 let source_manager = decoder. source_manager . as_deref_mut ( ) . unwrap ( ) ;
@@ -492,7 +492,8 @@ impl MzDec {
492492 let _ = source_manager;
493493 let _ = decoder;
494494 let mut suspend = false ;
495- if !MzDec :: source_fill_buffer ( codec_info, custom_state, & mut suspend) {
495+ if !MzDec :: source_fill_buffer ( _codec_info, custom_state, & mut suspend as * mut bool )
496+ {
496497 let decoder = unsafe { & mut * ( custom_state as * mut MzDec ) } ;
497498 decoder. error = decoder. error . clone ( ) . map ( |e| e. at ( here ! ( ) ) ) ;
498499 return false ;
0 commit comments