X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fhmapx.c;h=25dabf6eda54184085509a9be4f807eb2714a87e;hb=07f535c5ce76a82df05dafe831e44fb15855ae27;hp=437b2bdba5a7aad4ad301f672fc3681b5f2010fd;hpb=91c50c1bf38fa2377a685343608b88915aa0168a;p=pspp diff --git a/src/libpspp/hmapx.c b/src/libpspp/hmapx.c index 437b2bdba5..25dabf6eda 100644 --- a/src/libpspp/hmapx.c +++ b/src/libpspp/hmapx.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010 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 @@ -18,9 +18,9 @@ #include #endif -#include +#include "libpspp/hmapx.h" #include -#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 @@ -45,6 +45,18 @@ hmapx_destroy (struct hmapx *map) } } +/* 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; + void *data; + + HMAPX_FOR_EACH_SAFE (data, node, next, map) + hmapx_delete (map, node); +} + /* Allocates and returns a new hmapx_node with DATA as its data item. */ static struct hmapx_node *