perf config: Refactor the code using 'ret' variable in cmd_config()
PATCH v4 2/5 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.
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Signed-off-by Taeung Song <[email protected]>
--- tools/perf/builtin-config.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-)
tools/perf/builtin-config.c +13 -17
@@ -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; }
Signature · 1 line
2.7.4
Em Sat, Jun 17, 2017 at 12:46:42PM +0900, Taeung Song escreveu:
Quoted 2 lines
To simplify the code related to 'ret' variable in
cmd_config(), initialize 'ret' with -1 instead of 0.
Thanks, applied.
Quoted 95 lines
Cc Jiri Olsa <[email protected]>Cc Namhyung Kim <[email protected]>Signed-off-by Taeung Song <[email protected]>--- tools/perf/builtin-config.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-)tools/perf/builtin-config.c +13
-17@@ -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; }Signature · 1 line
2.7.4
tip-bot for Taeung Song
merge botperf config: Refactor the code using 'ret' variable in cmd_config()
Commit-ID: dfe1c6d7efa8ead6878b73216d4c891a28207528 Gitweb: http://git.kernel.org/tip/dfe1c6d7efa8ead6878b73216d4c891a28207528 Author: Taeung Song <[email protected]> AuthorDate: Sat, 17 Jun 2017 12:46:42 +0900 Committer: Arnaldo Carvalho de Melo <[email protected]> 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 <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/builtin-config.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-)
tools/perf/builtin-config.c +13 -17
@@ -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; }