02111-1307, USA. */
#include <config.h>
+#include "value-labels.h"
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#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;
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
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. */
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);
}
/* Returns the string associated with ATOM. */
-static const char *
+static char *
atom_to_string (const struct atom *atom)
{
assert (atom != NULL);