diff options
author | Tom Gundersen <teg@jklm.no> | 2014-12-20 10:08:23 -0500 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2014-12-20 10:08:23 -0500 |
commit | 0ec88a3573a882f7c8cd23b011e42ffa7e01397d (patch) | |
tree | abb930357eb2256d9f32c7b27c84674012f26d34 | |
parent | 8170dcd3695d60b456e28125f53874ef686128ca (diff) |
shared: strv - add strv_clear()
This frees the elements of the strv without freeing the strv itself.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
-rw-r--r-- | src/shared/strv.c | 7 | ||||
-rw-r--r-- | src/shared/strv.h | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/shared/strv.c b/src/shared/strv.c index 85ae556c16..5cfab8f23e 100644 --- a/src/shared/strv.c +++ b/src/shared/strv.c @@ -26,7 +26,7 @@ #include "util.h" #include "strv.h" -void strv_free(char **l) { +void strv_clear(char **l) { char **k; if (!l) @@ -35,6 +35,11 @@ void strv_free(char **l) { for (k = l; *k; k++) free(*k); + *l = NULL; +} + +void strv_free(char **l) { + strv_clear(l); free(l); } diff --git a/src/shared/strv.h b/src/shared/strv.h index 22c8132c57..94bdbe62aa 100644 --- a/src/shared/strv.h +++ b/src/shared/strv.h @@ -28,6 +28,8 @@ void strv_free(char **l); DEFINE_TRIVIAL_CLEANUP_FUNC(char**, strv_free); #define _cleanup_strv_free_ _cleanup_(strv_freep) +void strv_clear(char **l); + char **strv_copy(char * const *l); unsigned strv_length(char * const *l) _pure_; |