Skip to content

Commit 45bfbae

Browse files
author
Matthias Güdemann
committed
Simplify code for alternative parameter types
1 parent 556e814 commit 45bfbae

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

jbmc/src/java_bytecode/java_entry_point.cpp

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -364,34 +364,40 @@ exprt::operandst java_build_arguments(
364364

365365
const symbolt result_symbol = get_fresh_aux_symbol(
366366
p.type(),
367-
"nondet_parameter_" + std::to_string(param_number),
368-
"nondet_parameter_" + std::to_string(param_number),
367+
"nondet_parameter_" + id2string(function.name) + "_" +
368+
std::to_string(param_number),
369+
"nondet_parameter_" + id2string(function.name) + "_" +
370+
std::to_string(param_number),
369371
function.location,
370372
ID_java,
371373
symbol_table);
372374
main_arguments[param_number] = result_symbol.symbol_expr();
373375

374-
std::vector<codet> cases;
375-
size_t alternative = 0;
376-
for(const auto &type : alternatives)
377-
{
376+
std::vector<codet> cases(alternatives.size());
377+
const auto initialize_parameter = [&](const symbol_typet &type) {
378378
code_blockt init_code_for_type;
379379
exprt init_expr_for_parameter = object_factory(
380380
java_reference_type(type),
381-
id2string(base_name) + "_alt_" + std::to_string(alternative),
381+
id2string(base_name) + "_alternative_" +
382+
id2string(type.get_identifier()),
382383
init_code_for_type,
383384
symbol_table,
384385
parameters,
385386
allocation_typet::DYNAMIC,
386387
function.location,
387388
pointer_type_selector);
388-
alternative++;
389389
init_code_for_type.add(
390390
code_assignt(
391391
result_symbol.symbol_expr(),
392392
typecast_exprt(init_expr_for_parameter, p.type())));
393-
cases.push_back(init_code_for_type);
394-
}
393+
return init_code_for_type;
394+
};
395+
396+
std::transform(
397+
alternatives.begin(),
398+
alternatives.end(),
399+
cases.begin(),
400+
initialize_parameter);
395401

396402
init_code.add(
397403
generate_nondet_switch(

0 commit comments

Comments
 (0)