diff options
author | ben <benjaminfranzke@googlemail.com> | 2010-07-13 10:41:31 +0200 |
---|---|---|
committer | ben <benjaminfranzke@googlemail.com> | 2010-07-13 10:41:31 +0200 |
commit | 148d8bdded18b7788db20a4ec455fe18f73947f2 (patch) | |
tree | ebebae836f9837644e117461a0545b3487d5bded | |
parent | b071118b59b117652d7a45c4104a78d65995329e (diff) | |
download | pa-sink-ctl-148d8bdded18b7788db20a4ec455fe18f73947f2.tar.gz pa-sink-ctl-148d8bdded18b7788db20a4ec455fe18f73947f2.tar.bz2 pa-sink-ctl-148d8bdded18b7788db20a4ec455fe18f73947f2.zip |
stop setting local pntrs NULL when globals needed (tmp commented out)
all *_clear functions get a pointer that should be freed by that function.
after freeing they are set to NULL, but thats only in local scope, i.e:
the global pointer stays NOT NULL
void sink_list_clear(sink_info** sink_list, ...) {
[..]
free(sink_list);
sink_list = NULL;
}
so if it is really intended, all clear functions need to be changed to:
void sink_list_clear(sink_info ***sink_list,...) {
[..]
free(*sink_list);
*sink_list = NULL;
}
-rw-r--r-- | src/sink.c | 9 | ||||
-rw-r--r-- | src/sink_input.c | 4 |
2 files changed, 9 insertions, 4 deletions
@@ -35,7 +35,7 @@ void sink_clear(sink_info* sink) { sink_input_list_clear(sink->input_list, &sink->input_max); free(sink); - sink = NULL; + //sink = NULL; } void sink_check(sink_info** sink) { @@ -97,5 +97,10 @@ void sink_list_clear(sink_info** sink_list, uint32_t* max, uint32_t* counter) { (*counter) = 0; free(sink_list); - sink_list = NULL; + // sink_list = NULL; + + /* TODO: for all *_clear: + * setting local parameter to NULL doesnt do want is wanted + * pointer to sink_list would be needed here... + */ } diff --git a/src/sink_input.c b/src/sink_input.c index 5679813..8b3eab8 100644 --- a/src/sink_input.c +++ b/src/sink_input.c @@ -24,7 +24,7 @@ void sink_input_clear(sink_input_info* sink_input) { free(sink_input->pid); free(sink_input); - sink_input = NULL; + // sink_input = NULL; } sink_input_info** sink_input_list_init(int max) { @@ -55,7 +55,7 @@ void sink_input_list_clear(sink_input_info** sink_input_list, int *max) { (*max) = 0; free(sink_input_list); - sink_input_list = NULL; + // sink_input_list = NULL; } void sink_input_check(sink_input_info** sink_input) { |