From 6808c5b02ac11441838362579549770910ddbdc6 Mon Sep 17 00:00:00 2001 From: LAN-TW Date: Sun, 5 Jan 2014 15:59:45 +0800 Subject: Do not ignore max argument when creating a LbsStrv --- l4strv.c | 22 +++++++++++++++++----- l4strv.h | 1 + 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/l4strv.c b/l4strv.c index 26e9969..94f85c7 100644 --- a/l4strv.c +++ b/l4strv.c @@ -12,7 +12,7 @@ LbsStrv* lbs_strv_new_with_max (size_t max) { return NULL; } - if (lbs_array_init (&strv->array, sizeof (LbsArray)) < 0) { + if (lbs_array_init_with_max (&strv->array, sizeof (LbsArray), max) < 0) { free (strv); return NULL; } @@ -23,7 +23,7 @@ LbsStrv* lbs_strv_new_with_max (size_t max) { } int lbs_strv_init_with_max (LbsStrv* strv, size_t max) { - if (lbs_array_init (&strv->array, sizeof (LbsArray)) < 0) { + if (lbs_array_init_with_max (&strv->array, sizeof (LbsArray), max) < 0) { return -1; } @@ -54,7 +54,7 @@ void lbs_strv_free_generic (void* strv_generic) { return; } LbsStrv* strv = LBS_STRV (strv_generic); - int i = 0; + size_t i = 0; for (; i < lbs_strv_get_len (strv); i++) { LbsArray* str_wrapper = lbs_strv_get_str_wrapper (strv, i); lbs_array_unref (str_wrapper); @@ -98,6 +98,18 @@ int lbs_strv_append_char (LbsStrv* strv, size_t stri, char chr) { return lbs_array_append_data (str, &chr); } +int lbs_strv_append_str_empty (LbsStrv* strv) { + LbsArray str_struct, *str = &str_struct; + if (lbs_array_init (str, sizeof (char)) < 0) { + return -1; + } + if (lbs_array_append_data (&strv->array, &str_struct) < 0) { + lbs_array_unref (str); + return -1; + } + return 0; +} + int lbs_strv_append_str (LbsStrv* strv, const char* bstr) { if (bstr == NULL) { return -1; @@ -155,7 +167,7 @@ int lbs_strv_minimize (LbsStrv* strv) { return -1; } - int i; + size_t i; size_t len = lbs_strv_get_len (strv); for (i = 0; i < len; i++) { LbsArray* str = lbs_strv_get_str_wrapper (strv, i); @@ -174,7 +186,7 @@ char** lbs_strv_copy_strv (LbsStrv* strv) { return NULL; } - int i; + size_t i; for (i = 0; i < len; i++) { LbsArray* str = lbs_strv_get_str_wrapper (strv, i); size_t str_len = lbs_array_get_len (str); diff --git a/l4strv.h b/l4strv.h index 1ce5cfc..588b66d 100644 --- a/l4strv.h +++ b/l4strv.h @@ -57,6 +57,7 @@ char* lbs_strv_dup_str (LbsStrv* strv, size_t stri); (lbs_array_v (lbs_strv_get_str_wrapper (strv, stri), char, (chri))) int lbs_strv_append_char (LbsStrv* strv, size_t stri, char chr); +int lbs_strv_append_str_empty (LbsStrv* strv); int lbs_strv_append_str (LbsStrv* strv, const char* bstr); int lbs_strv_append_strv (LbsStrv* strv, const char* const* bstrv); int lbs_strv_remove_str (LbsStrv* strv); -- cgit