@@ -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;
@@ -2185,23 +2214,15 @@ void java_bytecode_convert_methodt::convert_invoke(
2185
2214
!(is_virtual &&
2186
2215
is_method_inherited (arg0.get (ID_C_class), arg0.get (ID_component_name))))
2187
2216
{
2188
- symbolt symbol;
2189
- symbol.name = invoked_method_id;
2190
- symbol.base_name = arg0.get (ID_C_base_name);
2191
- symbol.pretty_name = id2string (arg0.get (ID_C_class)).substr (6 ) + " ." +
2192
- id2string (symbol.base_name ) + " ()" ;
2193
- symbol.type = method_type;
2194
- symbol.type .set (ID_access, ID_private);
2195
- to_java_method_type (symbol.type ).set_is_final (true );
2196
- symbol.value .make_nil ();
2197
- symbol.mode = ID_java;
2198
- assign_parameter_names (
2199
- to_java_method_type (symbol.type ), symbol.name , symbol_table);
2200
- set_declaring_class (symbol, arg0.get (ID_C_class));
2201
-
2202
- debug () << " Generating codet: new opaque symbol: method '" << symbol.name
2203
- << " '" << eom;
2204
- symbol_table.add (symbol);
2217
+ create_method_stub_symbol (
2218
+ invoked_method_id,
2219
+ arg0.get (ID_C_base_name),
2220
+ id2string (arg0.get (ID_C_class)).substr (6 ) + " ." +
2221
+ id2string (arg0.get (ID_C_base_name)) + " ()" ,
2222
+ method_type,
2223
+ arg0.get (ID_C_class),
2224
+ symbol_table,
2225
+ get_message_handler ());
2205
2226
}
2206
2227
2207
2228
exprt function;
0 commit comments