@@ -94,6 +94,35 @@ static void assign_parameter_names(
94
94
}
95
95
}
96
96
97
+ void create_method_stub_symbol (
98
+ const irep_idt &identifier,
99
+ const irep_idt &base_name,
100
+ const irep_idt &pretty_name,
101
+ const typet &type,
102
+ const irep_idt &declaring_class,
103
+ symbol_table_baset &symbol_table,
104
+ message_handlert &message_handler)
105
+ {
106
+ messaget log (message_handler);
107
+
108
+ symbolt symbol;
109
+ symbol.name = identifier;
110
+ symbol.base_name = base_name;
111
+ symbol.pretty_name = pretty_name;
112
+ symbol.type = type;
113
+ symbol.type .set (ID_access, ID_private);
114
+ to_java_method_type (symbol.type ).set_is_final (true );
115
+ symbol.value .make_nil ();
116
+ symbol.mode = ID_java;
117
+ assign_parameter_names (
118
+ to_java_method_type (symbol.type ), symbol.name , symbol_table);
119
+ set_declaring_class (symbol, declaring_class);
120
+
121
+ log.debug () << " Generating codet: new opaque symbol: method '" << symbol.name
122
+ << " '" << messaget::eom;
123
+ symbol_table.add (symbol);
124
+ }
125
+
97
126
static bool is_constructor (const irep_idt &method_name)
98
127
{
99
128
return id2string (method_name).find (" <init>" ) != std::string::npos;
@@ -2235,23 +2264,15 @@ void java_bytecode_convert_methodt::convert_invoke(
2235
2264
!(is_virtual &&
2236
2265
is_method_inherited (arg0.get (ID_C_class), arg0.get (ID_component_name))))
2237
2266
{
2238
- symbolt symbol;
2239
- symbol.name = invoked_method_id;
2240
- symbol.base_name = arg0.get (ID_C_base_name);
2241
- symbol.pretty_name = id2string (arg0.get (ID_C_class)).substr (6 ) + " ." +
2242
- id2string (symbol.base_name ) + " ()" ;
2243
- symbol.type = method_type;
2244
- symbol.type .set (ID_access, ID_private);
2245
- to_java_method_type (symbol.type ).set_is_final (true );
2246
- symbol.value .make_nil ();
2247
- symbol.mode = ID_java;
2248
- assign_parameter_names (
2249
- to_java_method_type (symbol.type ), symbol.name , symbol_table);
2250
- set_declaring_class (symbol, arg0.get (ID_C_class));
2251
-
2252
- debug () << " Generating codet: new opaque symbol: method '" << symbol.name
2253
- << " '" << eom;
2254
- symbol_table.add (symbol);
2267
+ create_method_stub_symbol (
2268
+ invoked_method_id,
2269
+ arg0.get (ID_C_base_name),
2270
+ id2string (arg0.get (ID_C_class)).substr (6 ) + " ." +
2271
+ id2string (arg0.get (ID_C_base_name)) + " ()" ,
2272
+ method_type,
2273
+ arg0.get (ID_C_class),
2274
+ symbol_table,
2275
+ get_message_handler ());
2255
2276
}
2256
2277
2257
2278
exprt function;
0 commit comments