Skip to content

Commit 8fe90fe

Browse files
committed
Use irept instead of symbol_exprt in java_lambda_method_handlest
A java_lambda_method_handlest really is just a collection of identifiers - there is no need to put them into a symbol_exprt, instead the identifier can directly be used as the id of an irept. This reduces the memory footprint, but more importantly avoids a warning of using a deprecated symbol_exprt constructor. This warning is well placed, because those symbol_exprt would never have a type set, which makes them invalid symbol_exprt anyway.
1 parent e29fd12 commit 8fe90fe

File tree

3 files changed

+9
-12
lines changed

3 files changed

+9
-12
lines changed

jbmc/src/java_bytecode/java_bytecode_convert_method.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -316,11 +316,11 @@ optionalt<symbolt> java_bytecode_convert_methodt::get_lambda_method_symbol(
316316
const java_class_typet::java_lambda_method_handlest &lambda_method_handles,
317317
const size_t index)
318318
{
319-
const symbol_exprt &lambda_method_handle = lambda_method_handles.at(index);
319+
const irept &lambda_method_handle = lambda_method_handles.at(index);
320320
// If the lambda method handle has an unknown type, it does not refer to
321-
// any symbol (it is a symbol expression with empty identifier)
322-
if(!lambda_method_handle.get_identifier().empty())
323-
return symbol_table.lookup_ref(lambda_method_handle.get_identifier());
321+
// any symbol (it has an empty identifier)
322+
if(!lambda_method_handle.id().empty())
323+
return symbol_table.lookup_ref(lambda_method_handle.id());
324324
return {};
325325
}
326326

jbmc/src/java_bytecode/java_types.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -171,19 +171,16 @@ class java_class_typet:public class_typet
171171
set(ID_final, is_final);
172172
}
173173

174-
typedef std::vector<symbol_exprt> java_lambda_method_handlest;
174+
using java_lambda_method_handlest = irept::subt;
175175

176176
const java_lambda_method_handlest &lambda_method_handles() const
177177
{
178-
return (const java_lambda_method_handlest &)find(
179-
ID_java_lambda_method_handles)
180-
.get_sub();
178+
return find(ID_java_lambda_method_handles).get_sub();
181179
}
182180

183181
java_lambda_method_handlest &lambda_method_handles()
184182
{
185-
return (java_lambda_method_handlest &)add(ID_java_lambda_method_handles)
186-
.get_sub();
183+
return add(ID_java_lambda_method_handles).get_sub();
187184
}
188185

189186
void add_lambda_method_handle(const irep_idt &identifier)

jbmc/unit/java-testing-utils/require_type.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,9 +527,9 @@ require_type::require_lambda_method_handles(
527527
lambda_method_handles.end(),
528528
expected_identifiers.begin(),
529529
[](
530-
const symbol_exprt &lambda_method_handle,
530+
const irept &lambda_method_handle,
531531
const std::string &expected_identifier) { //NOLINT
532-
return lambda_method_handle.get_identifier() == expected_identifier;
532+
return lambda_method_handle.id() == expected_identifier;
533533
}));
534534
return lambda_method_handles;
535535
}

0 commit comments

Comments
 (0)