Commit | Line | Data |
---|---|---|
11492ebf C |
1 | #include "dir_entry.h" |
2 | ||
3 | int free_dir_entry(entry) | |
4 | dirEntry entry; | |
5 | { | |
6 | if (entry->entry_name) free(entry->entry_name); | |
7 | (void) free_ent_attrs(entry->attrs); | |
8 | free((char *) entry); | |
9 | } | |
10 | ||
11 | int free_ent_attrs(attrs) | |
12 | dirAttrs attrs; | |
13 | { | |
14 | dirAttrs last_attr = 0; | |
15 | for (; attrs; attrs = attrs->next) { | |
16 | if (attrs->val_seq) free_mod_vals(attrs->val_seq); | |
17 | if (attrs->attr_name) free(attrs->attr_name); | |
18 | if (last_attr) free((char *) last_attr); | |
19 | last_attr = attrs; | |
20 | } | |
21 | } | |
22 | ||
23 | int free_mod_vals(vals) | |
24 | modVals vals; | |
25 | { | |
26 | modVals last_val = 0; | |
27 | for (; vals; vals = vals->next) { | |
28 | if (vals->value) free(vals->value); | |
29 | if (vals->new_value) free(vals->new_value); | |
30 | if (last_val) free((char *)last_val); | |
31 | last_val = vals; | |
32 | } | |
33 | } |