From 6394425ffbc0e6da51db67236da002e955f7c680 Mon Sep 17 00:00:00 2001 From: Kristof Szabados <Kristof.Szabados@ericsson.com> Date: Mon, 6 Aug 2018 14:41:28 +0200 Subject: [PATCH] if the text and descaped_text is the same, it is enough to compare only one of them. Signed-off-by: Kristof Szabados <Kristof.Szabados@ericsson.com> --- compiler2/enum.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/compiler2/enum.c b/compiler2/enum.c index 6ef38a072..0036af9e7 100644 --- a/compiler2/enum.c +++ b/compiler2/enum.c @@ -29,6 +29,7 @@ #include "encdec.h" #include <stdlib.h> +#include <string.h> #include "main.hh" #include "ttcn3/compiler.h" @@ -268,13 +269,15 @@ void defEnumClass(const enum_def *edef, output_struct *output) src = mputprintf(src, "%s %s::str_to_enum(const char *str_par)\n" "{\n", qualified_enum_type, name); for (i = 0; i < edef->nElements; i++) { - if (edef->elements[i].text) { - src = mputprintf(src, "if (!strcmp(str_par, \"%s\") || !strcmp(str_par, \"%s\") || !strcmp(str_par, \"%s\")) return %s;\n" - "else ", edef->elements[i].text, edef->elements[i].descaped_text, edef->elements[i].dispname, edef->elements[i].name); - } - else { + if (!edef->elements[i].text) { src = mputprintf(src, "if (!strcmp(str_par, \"%s\")) return %s;\n" "else ", edef->elements[i].dispname, edef->elements[i].name); + } else if (!strcmp(edef->elements[i].text, edef->elements[i].descaped_text)) { + src = mputprintf(src, "if (!strcmp(str_par, \"%s\") || !strcmp(str_par, \"%s\")) return %s;\n" + "else ", edef->elements[i].text, edef->elements[i].dispname, edef->elements[i].name); + } else { + src = mputprintf(src, "if (!strcmp(str_par, \"%s\") || !strcmp(str_par, \"%s\") || !strcmp(str_par, \"%s\")) return %s;\n" + "else ", edef->elements[i].text, edef->elements[i].descaped_text, edef->elements[i].dispname, edef->elements[i].name); } } src = mputprintf(src, "return %s;\n" -- GitLab