aboutsummaryrefslogtreecommitdiff
path: root/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'common.c')
-rw-r--r--common.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/common.c b/common.c
index 423bb7e..afca7e1 100644
--- a/common.c
+++ b/common.c
@@ -70,6 +70,17 @@ str_vector_find (const struct str_vector *v, const char *s)
return -1;
}
+static void *
+str_map_steal (struct str_map *self, const char *key)
+{
+ void *value = str_map_find (self, key);
+ void (*free_backup) (void *) = self->free;
+ self->free = NULL;
+ str_map_set (self, key, NULL);
+ self->free = free_backup;
+ return value;
+}
+
// --- Logging -----------------------------------------------------------------
static void