From 21b1027832ff5e53edc37dd9f5c153217a65b6fd Mon Sep 17 00:00:00 2001 From: Jan Klemkow Date: Fri, 9 Jul 2010 00:55:02 +0200 Subject: wip: cleanup sink & co. --- sink_input.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'sink_input.c') diff --git a/sink_input.c b/sink_input.c index 1a6eda2..54f7c04 100644 --- a/sink_input.c +++ b/sink_input.c @@ -24,10 +24,26 @@ void sink_input_clear(sink_input_info* sink_input) { free(sink_input->pid); free(sink_input); + sink_input = NULL; } -void sink_input_list_init(sink_input_info** sink_input_list, int max) { - sink_input_list = (sink_input_info**) calloc(max, sizeof(sink_input_info*)); +sink_input_info** sink_input_list_init(int max) { + + sink_input_info** sink_input_list = (sink_input_info**) calloc(max, sizeof(sink_input_info*)); + + for (int i = 0; i < max; ++i) + sink_input_list = NULL; + + return sink_input_list; +} + +void sink_input_list_enlarge(sink_input_info** sink_input_list, int* max, int counter) { + + (*max) *= 2; + sink_input_list = (sink_input_info**) realloc(sink_input_list, (*max) * sizeof(sink_input_info*)); + + for (int i = counter; i < (*max); ++i) + sink_input_list[i] = NULL; } void sink_input_list_clear(sink_input_info** sink_input_list, int *max) { @@ -38,9 +54,17 @@ void sink_input_list_clear(sink_input_info** sink_input_list, int *max) { (*max) = 0; free(sink_input_list); + sink_input_list = NULL; +} + +void sink_input_check(sink_input_info** sink_input) { + + if ((*sink_input) == NULL) + (*sink_input) = (sink_input_info*) calloc(1, sizeof(sink_input_info)); } int cmp_sink_input_list(const void *a, const void *b) { + sink_input_info* sinka = *((sink_input_info**) a); sink_input_info* sinkb = *((sink_input_info**) b); -- cgit