From a948daf67e1f27b227d0facf020e40e3fe0e5deb Mon Sep 17 00:00:00 2001
From: Botond Baranyi <botond.baranyi@ericsson.com>
Date: Thu, 22 Mar 2018 13:10:15 +0100
Subject: [PATCH] Newer fix for port name clash error (bug 532451)

Change-Id: I04b68bf6be6d2ef9f26976f43c0680d326dd3350
Signed-off-by: Botond Baranyi <botond.baranyi@ericsson.com>
---
 compiler2/ttcn3/Statement.cc | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/compiler2/ttcn3/Statement.cc b/compiler2/ttcn3/Statement.cc
index e6e4848e9..77024dd93 100644
--- a/compiler2/ttcn3/Statement.cc
+++ b/compiler2/ttcn3/Statement.cc
@@ -7629,7 +7629,7 @@ error:
       if (!config_op.compref1->get_expr_governor(Type::EXPECTED_DYNAMIC_VALUE)) {
         warning = true;
         if (strcmp(opname, "map") == 0) {
-          config_op.compref2->warning(
+          config_op.compref1->warning(
             "Cannot determine the type of the component in the first parameter."
             "The port translation will not work.");
         }
@@ -7643,21 +7643,14 @@ error:
         }
       }
       if (warning == false) {
+        Reference* portref = config_op.first_is_system ?
+          config_op.portref1 : config_op.portref2;
         expr.expr = mputstr(expr.expr, "if (!(");
-        config_op.portref1->generate_code_portref(&expr, my_sb);
-        expr.expr = mputstr(expr.expr, ".port_is_started())) {\n");
-        config_op.portref1->generate_code_portref(&expr, my_sb);
-        expr.expr = mputprintf(expr.expr, ".activate_port(%s);\n",
-          config_op.first_is_system ? "TRUE" : "FALSE");
-        config_op.portref1->generate_code_portref(&expr, my_sb);
-        expr.expr = mputstr(expr.expr, ".start();\n}\n");
-        expr.expr = mputstr(expr.expr, "if (!(");
-        config_op.portref2->generate_code_portref(&expr, my_sb);
+        portref->generate_code_portref(&expr, my_sb);
         expr.expr = mputstr(expr.expr, ".port_is_started())) {\n");
-        config_op.portref2->generate_code_portref(&expr, my_sb);
-        expr.expr = mputprintf(expr.expr, ".activate_port(%s);\n",
-          config_op.first_is_system ? "FALSE" : "TRUE");
-        config_op.portref2->generate_code_portref(&expr, my_sb);
+        portref->generate_code_portref(&expr, my_sb);
+        expr.expr = mputstr(expr.expr, ".activate_port(TRUE);\n");
+        portref->generate_code_portref(&expr, my_sb);
         expr.expr = mputstr(expr.expr, ".start();\n}\n");
       }
     }
-- 
GitLab