[RFC PATCH 18/28] cli: lil: Remove duplicate function bodies

Sean Anderson seanga2 at gmail.com
Thu Jul 1 08:16:01 CEST 2021


lil_append_val is just lil_append_string with the string and length taken
from a struct lil_value. Use lil_append_stringh_len to implement both. Do
the same for lil_clone_value.

Signed-off-by: Sean Anderson <seanga2 at gmail.com>
---

 common/cli_lil.c | 51 ++----------------------------------------------
 1 file changed, 2 insertions(+), 49 deletions(-)

diff --git a/common/cli_lil.c b/common/cli_lil.c
index 6c05531441..5875fbd46b 100644
--- a/common/cli_lil.c
+++ b/common/cli_lil.c
@@ -369,39 +369,7 @@ static struct lil_value *alloc_value(const char *str)
 
 struct lil_value *lil_clone_value(struct lil_value *src)
 {
-	struct lil_value *val;
-
-	if (!src)
-		return NULL;
-
-	if (IS_ENABLED(CONFIG_LIL_POOLS))
-		val = alloc_from_pool();
-	else
-		val = calloc(1, sizeof(struct lil_value));
-	if (!val)
-		return NULL;
-
-	val->l = src->l;
-	if (src->l) {
-		if (IS_ENABLED(CONFIG_LIL_POOLS)) {
-			ensure_capacity(val, val->l + 1);
-		} else {
-			val->d = malloc(val->l + 1);
-			if (!val->d) {
-				free(val);
-				return NULL;
-			}
-		}
-		memcpy(val->d, src->d, val->l + 1);
-	} else {
-		if (IS_ENABLED(CONFIG_LIL_POOLS)) {
-			ensure_capacity(val, 1);
-			val->d[0] = '\0';
-		} else {
-			val->d = NULL;
-		}
-	}
-	return val;
+	return alloc_value_len(src->d, src->l);
 }
 
 int lil_append_char(struct lil_value *val, char ch)
@@ -450,22 +418,7 @@ int lil_append_string(struct lil_value *val, const char *s)
 
 int lil_append_val(struct lil_value *val, struct lil_value *v)
 {
-	if (!v || !v->l)
-		return 1;
-
-	if (IS_ENABLED(CONFIG_LIL_POOLS)) {
-		ensure_capacity(val, val->l + v->l + 1);
-		memcpy(val->d + val->l, v->d, v->l + 1);
-	} else {
-		char *new = realloc(val->d, val->l + v->l + 1);
-
-		if (!new)
-			return 0;
-		memcpy(new + val->l, v->d, v->l + 1);
-		val->d = new;
-	}
-	val->l += v->l;
-	return 1;
+	return lil_append_string_len(val, v->d, v->l);
 }
 
 void lil_free_value(struct lil_value *val)
-- 
2.32.0



More information about the U-Boot mailing list