All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 2/5] perf config: Refactor the code using 'ret' variable in cmd_config()
@ 2017-06-17  3:46 Taeung Song
  2017-06-19 18:34 ` Arnaldo Carvalho de Melo
  2017-06-20  9:08 ` [tip:perf/core] " tip-bot for Taeung Song
  0 siblings, 2 replies; 3+ messages in thread
From: Taeung Song @ 2017-06-17  3:46 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo; +Cc: linux-kernel, Jiri Olsa, Namhyung Kim

To simplify the code related to 'ret' variable in cmd_config(),
initialize 'ret' with -1 instead of 0.

Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
 tools/perf/builtin-config.c | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
index bb1be79..ece4558 100644
--- a/tools/perf/builtin-config.c
+++ b/tools/perf/builtin-config.c
@@ -156,7 +156,7 @@ static int parse_config_arg(char *arg, char **var, char **value)
 
 int cmd_config(int argc, const char **argv)
 {
-	int i, ret = 0;
+	int i, ret = -1;
 	struct perf_config_set *set;
 	char *user_config = mkpath("%s/.perfconfig", getenv("HOME"));
 	const char *config_filename;
@@ -186,10 +186,8 @@ int cmd_config(int argc, const char **argv)
 	 * because of reinitializing with options config file location.
 	 */
 	set = perf_config_set__new();
-	if (!set) {
-		ret = -1;
+	if (!set)
 		goto out_err;
-	}
 
 	switch (actions) {
 	case ACTION_LIST:
@@ -197,10 +195,11 @@ int cmd_config(int argc, const char **argv)
 			pr_err("Error: takes no arguments\n");
 			parse_options_usage(config_usage, config_options, "l", 1);
 		} else {
-			ret = show_config(set);
-			if (ret < 0)
+			if (show_config(set) < 0) {
 				pr_err("Nothing configured, "
 				       "please check your %s \n", config_filename);
+				goto out_err;
+			}
 		}
 		break;
 	default:
@@ -215,38 +214,35 @@ int cmd_config(int argc, const char **argv)
 
 			if (!arg) {
 				pr_err("%s: strdup failed\n", __func__);
-				ret = -1;
-				break;
+				goto out_err;
 			}
 
 			if (parse_config_arg(arg, &var, &value) < 0) {
 				free(arg);
-				ret = -1;
-				break;
+				goto out_err;
 			}
 
 			if (value == NULL) {
-				ret = show_spec_config(set, var);
-				if (ret < 0) {
+				if (show_spec_config(set, var) < 0) {
 					pr_err("%s is not configured: %s\n",
 					       var, config_filename);
 					free(arg);
-					break;
+					goto out_err;
 				}
 			} else {
-				ret = set_config(set, config_filename, var, value);
-				if (ret < 0) {
+				if (set_config(set, config_filename, var, value) < 0) {
 					pr_err("Failed to set '%s=%s' on %s\n",
 					       var, value, config_filename);
 					free(arg);
-					break;
+					goto out_err;
 				}
 			}
 			free(arg);
 		}
 	}
 
-	perf_config_set__delete(set);
+	ret = 0;
 out_err:
+	perf_config_set__delete(set);
 	return ret;
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v4 2/5] perf config: Refactor the code using 'ret' variable in cmd_config()
  2017-06-17  3:46 [PATCH v4 2/5] perf config: Refactor the code using 'ret' variable in cmd_config() Taeung Song
@ 2017-06-19 18:34 ` Arnaldo Carvalho de Melo
  2017-06-20  9:08 ` [tip:perf/core] " tip-bot for Taeung Song
  1 sibling, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-06-19 18:34 UTC (permalink / raw)
  To: Taeung Song; +Cc: linux-kernel, Jiri Olsa, Namhyung Kim

Em Sat, Jun 17, 2017 at 12:46:42PM +0900, Taeung Song escreveu:
> To simplify the code related to 'ret' variable in cmd_config(),
> initialize 'ret' with -1 instead of 0.

Thanks, applied.
 
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
>  tools/perf/builtin-config.c | 30 +++++++++++++-----------------
>  1 file changed, 13 insertions(+), 17 deletions(-)
> 
> diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
> index bb1be79..ece4558 100644
> --- a/tools/perf/builtin-config.c
> +++ b/tools/perf/builtin-config.c
> @@ -156,7 +156,7 @@ static int parse_config_arg(char *arg, char **var, char **value)
>  
>  int cmd_config(int argc, const char **argv)
>  {
> -	int i, ret = 0;
> +	int i, ret = -1;
>  	struct perf_config_set *set;
>  	char *user_config = mkpath("%s/.perfconfig", getenv("HOME"));
>  	const char *config_filename;
> @@ -186,10 +186,8 @@ int cmd_config(int argc, const char **argv)
>  	 * because of reinitializing with options config file location.
>  	 */
>  	set = perf_config_set__new();
> -	if (!set) {
> -		ret = -1;
> +	if (!set)
>  		goto out_err;
> -	}
>  
>  	switch (actions) {
>  	case ACTION_LIST:
> @@ -197,10 +195,11 @@ int cmd_config(int argc, const char **argv)
>  			pr_err("Error: takes no arguments\n");
>  			parse_options_usage(config_usage, config_options, "l", 1);
>  		} else {
> -			ret = show_config(set);
> -			if (ret < 0)
> +			if (show_config(set) < 0) {
>  				pr_err("Nothing configured, "
>  				       "please check your %s \n", config_filename);
> +				goto out_err;
> +			}
>  		}
>  		break;
>  	default:
> @@ -215,38 +214,35 @@ int cmd_config(int argc, const char **argv)
>  
>  			if (!arg) {
>  				pr_err("%s: strdup failed\n", __func__);
> -				ret = -1;
> -				break;
> +				goto out_err;
>  			}
>  
>  			if (parse_config_arg(arg, &var, &value) < 0) {
>  				free(arg);
> -				ret = -1;
> -				break;
> +				goto out_err;
>  			}
>  
>  			if (value == NULL) {
> -				ret = show_spec_config(set, var);
> -				if (ret < 0) {
> +				if (show_spec_config(set, var) < 0) {
>  					pr_err("%s is not configured: %s\n",
>  					       var, config_filename);
>  					free(arg);
> -					break;
> +					goto out_err;
>  				}
>  			} else {
> -				ret = set_config(set, config_filename, var, value);
> -				if (ret < 0) {
> +				if (set_config(set, config_filename, var, value) < 0) {
>  					pr_err("Failed to set '%s=%s' on %s\n",
>  					       var, value, config_filename);
>  					free(arg);
> -					break;
> +					goto out_err;
>  				}
>  			}
>  			free(arg);
>  		}
>  	}
>  
> -	perf_config_set__delete(set);
> +	ret = 0;
>  out_err:
> +	perf_config_set__delete(set);
>  	return ret;
>  }
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [tip:perf/core] perf config: Refactor the code using 'ret' variable in cmd_config()
  2017-06-17  3:46 [PATCH v4 2/5] perf config: Refactor the code using 'ret' variable in cmd_config() Taeung Song
  2017-06-19 18:34 ` Arnaldo Carvalho de Melo
@ 2017-06-20  9:08 ` tip-bot for Taeung Song
  1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Taeung Song @ 2017-06-20  9:08 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: mingo, linux-kernel, jolsa, namhyung, hpa, acme, tglx,
	treeze.taeung

Commit-ID:  dfe1c6d7efa8ead6878b73216d4c891a28207528
Gitweb:     http://git.kernel.org/tip/dfe1c6d7efa8ead6878b73216d4c891a28207528
Author:     Taeung Song <treeze.taeung@gmail.com>
AuthorDate: Sat, 17 Jun 2017 12:46:42 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 19 Jun 2017 22:05:55 -0300

perf config: Refactor the code using 'ret' variable in cmd_config()

To simplify the code related to 'ret' variable in cmd_config(),
initialize 'ret' with -1 instead of 0 and use goto to perform resource
release at the end of the function, setting ret to zero just before the
out_err label, as usual in the kernel sources.

Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1497671202-20495-1-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-config.c | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
index bb1be79..ece4558 100644
--- a/tools/perf/builtin-config.c
+++ b/tools/perf/builtin-config.c
@@ -156,7 +156,7 @@ static int parse_config_arg(char *arg, char **var, char **value)
 
 int cmd_config(int argc, const char **argv)
 {
-	int i, ret = 0;
+	int i, ret = -1;
 	struct perf_config_set *set;
 	char *user_config = mkpath("%s/.perfconfig", getenv("HOME"));
 	const char *config_filename;
@@ -186,10 +186,8 @@ int cmd_config(int argc, const char **argv)
 	 * because of reinitializing with options config file location.
 	 */
 	set = perf_config_set__new();
-	if (!set) {
-		ret = -1;
+	if (!set)
 		goto out_err;
-	}
 
 	switch (actions) {
 	case ACTION_LIST:
@@ -197,10 +195,11 @@ int cmd_config(int argc, const char **argv)
 			pr_err("Error: takes no arguments\n");
 			parse_options_usage(config_usage, config_options, "l", 1);
 		} else {
-			ret = show_config(set);
-			if (ret < 0)
+			if (show_config(set) < 0) {
 				pr_err("Nothing configured, "
 				       "please check your %s \n", config_filename);
+				goto out_err;
+			}
 		}
 		break;
 	default:
@@ -215,38 +214,35 @@ int cmd_config(int argc, const char **argv)
 
 			if (!arg) {
 				pr_err("%s: strdup failed\n", __func__);
-				ret = -1;
-				break;
+				goto out_err;
 			}
 
 			if (parse_config_arg(arg, &var, &value) < 0) {
 				free(arg);
-				ret = -1;
-				break;
+				goto out_err;
 			}
 
 			if (value == NULL) {
-				ret = show_spec_config(set, var);
-				if (ret < 0) {
+				if (show_spec_config(set, var) < 0) {
 					pr_err("%s is not configured: %s\n",
 					       var, config_filename);
 					free(arg);
-					break;
+					goto out_err;
 				}
 			} else {
-				ret = set_config(set, config_filename, var, value);
-				if (ret < 0) {
+				if (set_config(set, config_filename, var, value) < 0) {
 					pr_err("Failed to set '%s=%s' on %s\n",
 					       var, value, config_filename);
 					free(arg);
-					break;
+					goto out_err;
 				}
 			}
 			free(arg);
 		}
 	}
 
-	perf_config_set__delete(set);
+	ret = 0;
 out_err:
+	perf_config_set__delete(set);
 	return ret;
 }

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-06-20  9:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-17  3:46 [PATCH v4 2/5] perf config: Refactor the code using 'ret' variable in cmd_config() Taeung Song
2017-06-19 18:34 ` Arnaldo Carvalho de Melo
2017-06-20  9:08 ` [tip:perf/core] " tip-bot for Taeung Song

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.