/* PSPP - a program for statistical analysis.
- Copyright (C) 2008 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
#include <config.h>
#endif
-#include <libpspp/hmapx.h>
+#include "libpspp/hmapx.h"
#include <stdlib.h>
-#include "xalloc.h"
+#include "gl/xalloc.h"
/* Frees the memory, if any, allocated by hash map MAP, including
all hmapx_nodes that it contains. The user-defined data items
{
if (map != NULL)
{
- if (hmapx_count (map) > 0)
+ if (!(hmapx_is_empty (map)))
{
struct hmapx_node *node, *next;
for (node = hmapx_first (map); node != NULL; node = next)
}
}
+/* Removes all hmapx_nodes from MAP and frees them. The user-defined data
+ items that the hmapx_nodes point to are not affected. */
+void
+hmapx_clear (struct hmapx *map)
+{
+ struct hmapx_node *node, *next;
+
+ 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 *