[PATCH 3/4] ASN.1: Improve exiting from build_type_list()

From: SF Markus Elfring
Date: Fri Nov 10 2017 - 07:49:21 EST


From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 10 Nov 2017 12:56:33 +0100

* Add jump targets so that a call of the function "perror" and "exit"
is stored only once in an if branch of this function.

* Replace two calls by goto statements.

Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
---
scripts/asn1_compiler.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/scripts/asn1_compiler.c b/scripts/asn1_compiler.c
index 0eea270fcaef..06dc5397d8c8 100644
--- a/scripts/asn1_compiler.c
+++ b/scripts/asn1_compiler.c
@@ -762,18 +762,19 @@ static void build_type_list(void)

if (nr == 0) {
fprintf(stderr, "%s: No defined types\n", filename);
- exit(1);
+ goto exit;
}

nr_types = nr;
types = type_list = calloc(nr + 1, sizeof(type_list[0]));
- if (!type_list) {
- perror(NULL);
- exit(1);
- }
+ if (!type_list)
+ goto report_failure;
+
type_index = calloc(nr, sizeof(type_index[0]));
if (!type_index) {
+report_failure:
perror(NULL);
+exit:
exit(1);
}

--
2.15.0