@@ -99,35 +99,22 @@ class java_bytecode_convert_methodt:public messaget
99
99
variablet &find_variable_for_slot (unsigned number_int, size_t address,
100
100
variablest &var_list, instruction_sizet inst_size)
101
101
{
102
- size_t var_list_length = var_list.size ();
103
- if (var_list_length > 1 )
104
- {
105
- for (variablet &var : var_list)
106
- {
107
- size_t start_pc = var.start_pc ;
108
- size_t length = var.length ;
109
- if (address + (size_t ) inst_size >= start_pc && address < start_pc + length)
110
- return var;
111
- }
112
- // add unnamed local variable to end of list at this index
113
- // with scope from 0 to INT_MAX
114
- // as it is at the end of the vector, it will only be taken into account
115
- // if no other variable is valid
116
- size_t list_length = var_list.size ();
117
- var_list.resize (list_length + 1 );
118
- var_list[list_length].start_pc = 0 ;
119
- var_list[list_length].length = std::numeric_limits<size_t >::max ();
120
- return var_list[list_length];
121
- }
122
- else if (var_list_length == 1 )
123
- return var_list[0 ];
124
- else
125
- {
126
- // return reference to unnamed local variable
127
- // if no local variable is defined for this index
128
- var_list.resize (1 );
129
- return var_list[0 ];
130
- }
102
+ for (variablet &var : var_list)
103
+ {
104
+ size_t start_pc = var.start_pc ;
105
+ size_t length = var.length ;
106
+ if (address + (size_t ) inst_size >= start_pc && address < start_pc + length)
107
+ return var;
108
+ }
109
+ // add unnamed local variable to end of list at this index
110
+ // with scope from 0 to INT_MAX
111
+ // as it is at the end of the vector, it will only be taken into account
112
+ // if no other variable is valid
113
+ size_t list_length = var_list.size ();
114
+ var_list.resize (list_length + 1 );
115
+ var_list[list_length].start_pc = 0 ;
116
+ var_list[list_length].length = std::numeric_limits<size_t >::max ();
117
+ return var_list[list_length];
131
118
}
132
119
133
120
// JVM local variables
@@ -375,6 +362,8 @@ void java_bytecode_convert_methodt::convert(
375
362
// add as a JVM variable
376
363
std::size_t slots=get_variable_slots (parameters[i]);
377
364
variables[param_index][0 ].symbol_expr =parameter_symbol.symbol_expr ();
365
+ variables[param_index][0 ].start_pc =0 ;
366
+ variables[param_index][0 ].length = std::numeric_limits<size_t >::max ();
378
367
param_index+=slots;
379
368
}
380
369
0 commit comments