chiark / gitweb /
systemctl: append .service to unit names lacking suffix
[elogind.git] / src / shared / hashmap.c
index 5d1e63208a64648c8b8e11b8bd380874d607dfb0..e2395d4d4290caab9eb1e5a2024ba7fb294d1324 100644 (file)
@@ -277,11 +277,10 @@ void hashmap_free(Hashmap*h) {
 }
 
 void hashmap_free_free(Hashmap *h) {
-        void *p;
-
-        while ((p = hashmap_steal_first(h)))
-                free(p);
+        if (!h)
+                return;
 
+        hashmap_clear_free(h);
         hashmap_free(h);
 }
 
@@ -293,6 +292,16 @@ void hashmap_clear(Hashmap *h) {
                 remove_entry(h, h->iterate_list_head);
 }
 
+void hashmap_clear_free(Hashmap *h) {
+        void *p;
+
+        if (!h)
+                return;
+
+        while ((p = hashmap_steal_first(h)))
+                free(p);
+}
+
 static struct hashmap_entry *hash_scan(Hashmap *h, unsigned hash, const void *key) {
         struct hashmap_entry *e;
         assert(h);