use libc;
use crate::ffi;
pub fn dvb_file_free(file: *mut ffi::dvb_file) {
if !file.is_null() {
unsafe {
let mut entry: *mut ffi::dvb_entry = (*file).first_entry;
while !entry.is_null() {
if !(*entry).channel.is_null() {
libc::free((*entry).channel as *mut libc::c_void);
}
if !(*entry).vchannel.is_null() {
libc::free((*entry).vchannel as *mut libc::c_void);
}
if !(*entry).location.is_null() {
libc::free((*entry).location as *mut libc::c_void);
}
if !(*entry).video_pid.is_null() {
libc::free((*entry).video_pid as *mut libc::c_void);
}
if !(*entry).audio_pid.is_null() {
libc::free((*entry).audio_pid as *mut libc::c_void);
}
if !(*entry).other_el_pid.is_null() {
libc::free((*entry).other_el_pid as *mut libc::c_void);
}
if !(*entry).lnb.is_null() {
libc::free((*entry).lnb as *mut libc::c_void);
}
let next = (*entry).next;
libc::free(entry as *mut libc::c_void);
entry = next;
}
libc::free(file as *mut libc::c_void);
}
}
}