diff options
| author | Ben Pfaff <blp@nicira.com> | 2009-10-28 11:10:36 -0700 |
|---|---|---|
| committer | Ben Pfaff <blp@nicira.com> | 2009-11-04 15:01:02 -0800 |
| commit | 837e80977cdd9fda61fb0789bfd6b64c7639c25a (patch) | |
| tree | 35d86973eba965ca6e4a828339f3a4e66a8c9510 /lib/shash.c | |
| parent | 3adb8bf04838d8fa5a382f501437b62af99ed874 (diff) | |
| download | openvswitch-837e80977cdd9fda61fb0789bfd6b64c7639c25a.tar.gz | |
shash: New function shash_find_and_delete().
Diffstat (limited to 'lib/shash.c')
| -rw-r--r-- | lib/shash.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/shash.c b/lib/shash.c index da33fe8b6..5d8ecfa6c 100644 --- a/lib/shash.c +++ b/lib/shash.c @@ -100,6 +100,19 @@ shash_find_data(const struct shash *sh, const char *name) return node ? node->data : NULL; } +void * +shash_find_and_delete(struct shash *sh, const char *name) +{ + struct shash_node *node = shash_find(sh, name); + if (node) { + void *data = node->data; + shash_delete(sh, node); + return data; + } else { + return NULL; + } +} + struct shash_node * shash_first(const struct shash *shash) { |
