]> git.ipfire.org Git - thirdparty/git.git/blobdiff - strmap.h
strmap: enable allocations to come from a mem_pool
[thirdparty/git.git] / strmap.h
index c8c4d7c932a37f84e13a9053d9dbc7cafda0f2c8..8745b7ceb1302babbae2c845eba520f155bba312 100644 (file)
--- a/strmap.h
+++ b/strmap.h
@@ -3,8 +3,10 @@
 
 #include "hashmap.h"
 
+struct mem_pool;
 struct strmap {
        struct hashmap map;
+       struct mem_pool *pool;
        unsigned int strdup_strings:1;
 };
 
@@ -37,9 +39,10 @@ void strmap_init(struct strmap *map);
 
 /*
  * Same as strmap_init, but for those who want to control the memory management
- * carefully instead of using the default of strdup_strings=1.
+ * carefully instead of using the default of strdup_strings=1 and pool=NULL.
  */
 void strmap_init_with_options(struct strmap *map,
+                             struct mem_pool *pool,
                              int strdup_strings);
 
 /*
@@ -137,9 +140,10 @@ static inline void strintmap_init(struct strintmap *map, int default_value)
 
 static inline void strintmap_init_with_options(struct strintmap *map,
                                               int default_value,
+                                              struct mem_pool *pool,
                                               int strdup_strings)
 {
-       strmap_init_with_options(&map->map, strdup_strings);
+       strmap_init_with_options(&map->map, pool, strdup_strings);
        map->default_value = default_value;
 }
 
@@ -221,9 +225,10 @@ static inline void strset_init(struct strset *set)
 }
 
 static inline void strset_init_with_options(struct strset *set,
+                                           struct mem_pool *pool,
                                            int strdup_strings)
 {
-       strmap_init_with_options(&set->map, strdup_strings);
+       strmap_init_with_options(&set->map, pool, strdup_strings);
 }
 
 static inline void strset_clear(struct strset *set)