/* PSPP - a program for statistical analysis.
- Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2009, 2010, 2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
items should be freed, then it should be done by iterating
through MAP's contents before destroying MAP. */
void
-hmapx_destroy (struct hmapx *map)
+hmapx_destroy (struct hmapx *map)
{
- if (map != NULL)
+ if (map != NULL)
{
if (!(hmapx_is_empty (map)))
{
for (node = hmapx_first (map); node != NULL; node = next)
{
next = hmapx_next (map, node);
- free (node);
+ free (node);
}
}
hmap_destroy (&map->hmap);
hmapx_clear (struct hmapx *map)
{
struct hmapx_node *node, *next;
- void *data;
- HMAPX_FOR_EACH_SAFE (data, node, next, map)
- hmapx_delete (map, node);
+ for (node = hmapx_first (map); node; node = next)
+ {
+ next = hmapx_next (map, node);
+ hmapx_delete (map, node);
+ }
}
/* Allocates and returns a new hmapx_node with DATA as its data
item. */
static struct hmapx_node *
-make_hmapx_node (void *data)
+make_hmapx_node (void *data)
{
struct hmapx_node *node = xmalloc (sizeof *node);
node->data = data;
then the client must check for duplicates itself before
inserting the new item. */
struct hmapx_node *
-hmapx_insert (struct hmapx *map, void *data, size_t hash)
+hmapx_insert (struct hmapx *map, void *data, size_t hash)
{
struct hmapx_node *node = make_hmapx_node (data);
hmap_insert (&map->hmap, &node->hmap_node, hash);
then the client must check for duplicates itself before
inserting the new node. */
struct hmapx_node *
-hmapx_insert_fast (struct hmapx *map, void *data, size_t hash)
+hmapx_insert_fast (struct hmapx *map, void *data, size_t hash)
{
struct hmapx_node *node = make_hmapx_node (data);
hmap_insert_fast (&map->hmap, &node->hmap_node, hash);