diff --git a/src/rust/src/common.rs b/src/rust/src/common.rs index aa5df41ff..540507cde 100755 --- a/src/rust/src/common.rs +++ b/src/rust/src/common.rs @@ -255,11 +255,18 @@ pub unsafe fn copy_from_rust(ccx_s_options: *mut ccx_s_options, options: Options // Subsequent calls from ccxr_demuxer_open/close should NOT modify inputfile because // C code holds references to those strings throughout processing. // Freeing them would cause use-after-free and double-free errors. - if let Some(ref inputfile) = options.inputfile { + if let Some(ref _inputfile) = options.inputfile { if (*ccx_s_options).inputfile.is_null() { - (*ccx_s_options).inputfile = string_to_c_chars(inputfile.clone()); - (*ccx_s_options).num_input_files = - inputfile.iter().filter(|s| !s.is_empty()).count() as _; + let non_empty: Vec = options + .inputfile + .as_ref() + .unwrap() + .iter() + .filter(|s| !s.is_empty()) + .cloned() + .collect(); + (*ccx_s_options).num_input_files = non_empty.len() as _; + (*ccx_s_options).inputfile = string_to_c_chars(non_empty); } } (*ccx_s_options).demux_cfg = options.demux_cfg.to_ctype();