diff options
Diffstat (limited to 'sort.c')
-rw-r--r-- | sort.c | 24 |
1 files changed, 22 insertions, 2 deletions
@@ -90,6 +90,17 @@ line_newFromFile(FILE *src) | |||
90 | return NULL; | 90 | return NULL; |
91 | } | 91 | } |
92 | 92 | ||
93 | /* Line destructor */ | ||
94 | static Line * | ||
95 | line_release(Line *self) | ||
96 | { | ||
97 | if (self->data) { | ||
98 | free(self->data); | ||
99 | free(self); | ||
100 | } | ||
101 | return self; | ||
102 | } | ||
103 | |||
93 | 104 | ||
94 | /* Comparison */ | 105 | /* Comparison */ |
95 | 106 | ||
@@ -148,7 +159,16 @@ list_writeToFile(List *self, FILE* dst) | |||
148 | static List * | 159 | static List * |
149 | list_release(List *self) | 160 | list_release(List *self) |
150 | { | 161 | { |
151 | return self; | 162 | Line *i; |
163 | Line *die; | ||
164 | |||
165 | i = self->head; | ||
166 | while (i) { | ||
167 | die = i; | ||
168 | i = die->next; | ||
169 | line_delete(die); | ||
170 | } | ||
171 | return self; /* bad poetry? */ | ||
152 | } | 172 | } |
153 | 173 | ||
154 | 174 | ||
@@ -195,4 +215,4 @@ sort_main(int argc, char **argv) | |||
195 | exit(0); | 215 | exit(0); |
196 | } | 216 | } |
197 | 217 | ||
198 | /* $Id: sort.c,v 1.2 1999/12/22 00:30:29 beppu Exp $ */ | 218 | /* $Id: sort.c,v 1.3 1999/12/22 17:57:31 beppu Exp $ */ |