hmap: New function hmap_clear().
[pspp] / src / libpspp / hmap.h
index c9e764dec563a92df08491839259e5f061884963..095edf104674ba0af56b2a2da7d0bb4687807c0d 100644 (file)
@@ -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
        }
    */
 
+#include <stdbool.h>
 #include <stddef.h>
 #include <libpspp/cast.h>
 
@@ -157,6 +158,7 @@ struct hmap
 /* Creation and destruction. */
 void hmap_init (struct hmap *);
 void hmap_swap (struct hmap *, struct hmap *);
+void hmap_clear (struct hmap *);
 void hmap_destroy (struct hmap *);
 
 /* Storage management. */
@@ -182,6 +184,7 @@ static inline struct hmap_node *hmap_next (const struct hmap *,
                                            const struct hmap_node *);
 
 /* Counting. */
+static bool hmap_is_empty (const struct hmap *);
 static inline size_t hmap_count (const struct hmap *);
 static inline size_t hmap_capacity (const struct hmap *);
 
@@ -442,6 +445,14 @@ hmap_next (const struct hmap *map, const struct hmap_node *node)
           : hmap_first_nonempty_bucket__ (map, (node->hash & map->mask) + 1));
 }
 
+/* Returns true if MAP currently contains no data items, false
+   otherwise. */
+static inline bool
+hmap_is_empty (const struct hmap *map)
+{
+  return map->count == 0;
+}
+
 /* Returns the number of data items currently in MAP. */
 static inline size_t
 hmap_count (const struct hmap *map)