Add str_map_steal()

This commit is contained in:
Přemysl Eric Janouch 2015-07-14 22:17:27 +02:00
parent fb50290341
commit 0058c1f457
1 changed files with 14 additions and 0 deletions

View File

@ -872,6 +872,20 @@ str_map_find (struct str_map *self, const char *key)
return str_map_find_real (self, tmp);
}
static void *
str_map_steal (struct str_map *self, const char *key)
{
void *value = str_map_find (self, key);
if (value)
{
str_map_free_fn free_saved = self->free;
self->free = NULL;
str_map_set (self, key, NULL);
self->free = free_saved;
}
return value;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// This iterator is intended for accessing and eventually adding links.