diff options
Diffstat (limited to 'dviware/quicspool/libprofile/free.c')
-rw-r--r-- | dviware/quicspool/libprofile/free.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/dviware/quicspool/libprofile/free.c b/dviware/quicspool/libprofile/free.c new file mode 100644 index 0000000000..1832e0c88f --- /dev/null +++ b/dviware/quicspool/libprofile/free.c @@ -0,0 +1,62 @@ +static char *rcs = "$Header: free.c,v 1.1 88/01/15 12:16:58 simpson Rel $"; +/* +$Log: free.c,v $ + * Revision 1.1 88/01/15 12:16:58 simpson + * initial release + * + * Revision 0.1 87/12/11 17:02:11 simpson + * beta test + * +*/ +#include "profile.h" + +profile_free_profile (s) +PROFILE_STANZA *s; +{ + PROFILE_STANZA *x; + + for (x = s; x != (PROFILE_STANZA *)0 && x != s; x = x->next) + profile_free_stanza(x); +} + +profile_free_stanza (s) +PROFILE_STANZA *s; +{ + free_markers(s->marker); + free_bindings(s->binding); + free(s); +} + +static free_markers (m) +PROFILE_MARKER *m; +{ + PROFILE_MARKER *x; + + for (; m; m = x) { + x = m->next; + free(m); + } +} + +static free_bindings (b) +PROFILE_BINDING *b; +{ + PROFILE_BINDING *x; + + for (; b; b = x) { + x = b->next; + free_values(b->value); + free(b); + } +} + +static free_values (v) +PROFILE_VALUE *v; +{ + PROFILE_VALUE *x; + + for (; v; v = x) { + x = v->next; + free(v); + } +} |