Skip to content

Commit 3012a6f

Browse files
authored
Merge pull request #3495 from tautschnig/lambda-constructor
Use a constructor instead of a method-to-construct
2 parents 13f734a + afa576b commit 3012a6f

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

jbmc/src/java_bytecode/java_bytecode_parse_tree.h

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -237,23 +237,24 @@ struct java_bytecode_parse_treet
237237
typedef std::vector<u2> u2_valuest;
238238
struct lambda_method_handlet
239239
{
240-
method_handle_typet handle_type;
240+
method_handle_typet handle_type = method_handle_typet::UNKNOWN_HANDLE;
241241
irep_idt lambda_method_name;
242242
irep_idt lambda_method_ref;
243243
irep_idt interface_type;
244244
irep_idt method_type;
245245
u2_valuest u2_values;
246-
lambda_method_handlet() : handle_type(method_handle_typet::UNKNOWN_HANDLE)
246+
lambda_method_handlet() = default;
247+
248+
/// Construct a lambda method handle with parameters \p params.
249+
explicit lambda_method_handlet(const u2_valuest &params)
250+
: u2_values(params)
247251
{
248252
}
249253

250-
static lambda_method_handlet
251-
create_unknown_handle(const u2_valuest params)
254+
/// Construct a lambda method handle with parameters \p params.
255+
explicit lambda_method_handlet(u2_valuest &&params)
256+
: u2_values(std::move(params))
252257
{
253-
lambda_method_handlet lambda_method_handle;
254-
lambda_method_handle.handle_type = method_handle_typet::UNKNOWN_HANDLE;
255-
lambda_method_handle.u2_values = std::move(params);
256-
return lambda_method_handle;
257258
}
258259

259260
bool is_unknown_handle() const
@@ -290,7 +291,9 @@ struct java_bytecode_parse_treet
290291
return methods.back();
291292
}
292293

293-
void add_method_handle(size_t bootstrap_index, lambda_method_handlet handle)
294+
void add_method_handle(
295+
size_t bootstrap_index,
296+
const lambda_method_handlet &handle)
294297
{
295298
lambda_method_handle_map[{name, bootstrap_index}] = handle;
296299
}

jbmc/src/java_bytecode/java_bytecode_parser.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2145,7 +2145,6 @@ void java_bytecode_parsert::store_unknown_method_handle(
21452145
size_t bootstrap_method_index,
21462146
java_bytecode_parsert::u2_valuest u2_values) const
21472147
{
2148-
const lambda_method_handlet lambda_method_handle =
2149-
lambda_method_handlet::create_unknown_handle(move(u2_values));
2148+
const lambda_method_handlet lambda_method_handle(std::move(u2_values));
21502149
parsed_class.add_method_handle(bootstrap_method_index, lambda_method_handle);
21512150
}

0 commit comments

Comments
 (0)