X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvalue-labels.c;h=e061e452e5fbb000a79b535b8375ab002f79152a;hb=d69833d7d425cd98c3793a89945153306dfa7ab3;hp=a7e80a595e71c0808bdd225902ce79192784ff8f;hpb=2bfc3a138f308ffb38634a92b23bdc7b62592324;p=pspp-builds.git diff --git a/src/value-labels.c b/src/value-labels.c index a7e80a59..e061e452 100644 --- a/src/value-labels.c +++ b/src/value-labels.c @@ -18,12 +18,12 @@ 02111-1307, USA. */ #include +#include "value-labels.h" #include #include #include #include "alloc.h" #include "hash.h" -#include "value-labels.h" static hsh_compare_func compare_int_val_lab; static hsh_hash_func hash_int_val_lab; @@ -32,7 +32,7 @@ static hsh_free_func free_int_val_lab; struct atom; static struct atom *atom_create (const char *string); static void atom_destroy (struct atom *); -static const char *atom_to_string (const struct atom *); +static char *atom_to_string (const struct atom *); /* A set of value labels. */ struct val_labs @@ -91,8 +91,12 @@ val_labs_set_width (struct val_labs *vls, int new_width) void val_labs_destroy (struct val_labs *vls) { - if (vls != NULL && vls->labels != NULL) - hsh_destroy (vls->labels); + if (vls != NULL) + { + if (vls->labels != NULL) + hsh_destroy (vls->labels); + free (vls); + } } /* Removes all the value labels from VLS. */ @@ -228,7 +232,7 @@ val_labs_remove (struct val_labs *vls, union value value) returns the label; otherwise, returns a null pointer. If VLS's width is greater than MAX_SHORT_STRING, always returns a null pointer. */ -const char * +char * val_labs_find (const struct val_labs *vls, union value value) { assert (vls != NULL); @@ -448,7 +452,7 @@ atom_destroy (struct atom *atom) } /* Returns the string associated with ATOM. */ -static const char * +static char * atom_to_string (const struct atom *atom) { assert (atom != NULL);