From 2dfe3715b56a90d5b7df914c7b67d308b0b45b67 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Thu, 14 Aug 2014 17:24:12 +0200 Subject: dict: add dict_set_dynstr_with_alloc There is an overwhelming no. of instances of the following pattern in glusterd module. ... char *dynstr = gf_strdup (str); if (!dynstr) goto err; ret = dict_set_dynstr (dict, key, dynstr); if (ret) goto err; ... With this changes it would look as below, ret = dict_set_dynstr_with_alloc (dict, key, str); if (ret) goto err; Cherry picked from commit a9d4d369efc978511e3cb69e5643945710cc9416: > Change-Id: I6a47b1cbab4834badadc48c56d0b5c8c06c6dd4d > Signed-off-by: Krishnan Parthasarathi > Reviewed-on: http://review.gluster.org/7379 > Tested-by: Gluster Build System > Reviewed-by: Jeff Darcy Backport notes: Included this change to accommodate additional backports. BUG: 1081016 Change-Id: I6a47b1cbab4834badadc48c56d0b5c8c06c6dd4d Signed-off-by: Niels de Vos Reviewed-on: http://review.gluster.org/8489 Tested-by: Gluster Build System Reviewed-by: Kaleb KEITHLEY --- libglusterfs/src/dict.c | 17 +++++++++++++++++ libglusterfs/src/dict.h | 1 + 2 files changed, 18 insertions(+) (limited to 'libglusterfs') diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c index f2df5a6d431..065990b42ef 100644 --- a/libglusterfs/src/dict.c +++ b/libglusterfs/src/dict.c @@ -2062,6 +2062,23 @@ err: return ret; } +int +dict_set_dynstr_with_alloc (dict_t *this, char *key, const char *str) +{ + char *alloc_str = NULL; + int ret = -1; + + alloc_str = gf_strdup (str); + if (!alloc_str) + return -1; + + ret = dict_set_dynstr (this, key, alloc_str); + if (ret) + GF_FREE (alloc_str); + + return ret; +} + int dict_set_dynstr (dict_t *this, char *key, char *str) { diff --git a/libglusterfs/src/dict.h b/libglusterfs/src/dict.h index 6e5d8aa0650..a92fd2cb61a 100644 --- a/libglusterfs/src/dict.h +++ b/libglusterfs/src/dict.h @@ -228,6 +228,7 @@ GF_MUST_CHECK int dict_set_static_bin (dict_t *this, char *key, void *ptr, size_ GF_MUST_CHECK int dict_set_str (dict_t *this, char *key, char *str); GF_MUST_CHECK int dict_set_dynmstr (dict_t *this, char *key, char *str); GF_MUST_CHECK int dict_set_dynstr (dict_t *this, char *key, char *str); +GF_MUST_CHECK int dict_set_dynstr_with_alloc (dict_t *this, char *key, const char *str); GF_MUST_CHECK int dict_get_str (dict_t *this, char *key, char **str); GF_MUST_CHECK int dict_get_str_boolean (dict_t *this, char *key, int default_val); -- cgit