diff --git a/compiler2/ttcn3/Statement.cc b/compiler2/ttcn3/Statement.cc index e6e4848e917eb30c79ddc8d351cf6e098eca0d03..77024dd930ec586e3befd5d1b26f0a08be148962 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"); } }