summaryrefslogtreecommitdiff
path: root/src/input/input_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/input_file.c')
-rw-r--r--src/input/input_file.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/input/input_file.c b/src/input/input_file.c
index bb8afef92..2c56ae232 100644
--- a/src/input/input_file.c
+++ b/src/input/input_file.c
@@ -850,7 +850,7 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
this->mrls[num_files] = calloc(1, sizeof(xine_mrl_t));
}
else
- memset(this->mrls[num_files], 0, sizeof(xine_mrl_t));
+ MRL_ZERO(this->mrls[num_files]);
MRL_DUPLICATE(&dir_files[i], this->mrls[num_files]);
@@ -868,7 +868,7 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
this->mrls[num_files] = calloc(1, sizeof(xine_mrl_t));
}
else
- memset(this->mrls[num_files], 0, sizeof(xine_mrl_t));
+ MRL_ZERO(this->mrls[num_files]);
MRL_DUPLICATE(&hide_files[i], this->mrls[num_files]);
@@ -886,7 +886,7 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
this->mrls[num_files] = calloc(1, sizeof(xine_mrl_t));
}
else
- memset(this->mrls[num_files], 0, sizeof(xine_mrl_t));
+ MRL_ZERO(this->mrls[num_files]);
MRL_DUPLICATE(&norm_files[i], this->mrls[num_files]);
@@ -954,7 +954,12 @@ static void file_class_dispose (input_class_t *this_gen) {
config->unregister_callback(config, "media.files.origin_path");
+ while(this->mrls_allocated_entries) {
+ MRL_ZERO(this->mrls[this->mrls_allocated_entries - 1]);
+ free(this->mrls[this->mrls_allocated_entries--]);
+ }
free (this->mrls);
+
free (this);
}