File tree 3 files changed +14
-8
lines changed
3 files changed +14
-8
lines changed Original file line number Diff line number Diff line change @@ -235,9 +235,9 @@ bool java_bytecode_languaget::parse(
235
235
if (main_class.empty ())
236
236
{
237
237
status () << " JAR file without entry point: loading class files" << eom;
238
- java_class_loader.load_entire_jar (path);
239
- for (const auto &kv : java_class_loader. get_jar_index (path) )
240
- main_jar_classes.push_back (kv. first );
238
+ const auto classes = java_class_loader.load_entire_jar (path);
239
+ for (const auto &c : classes )
240
+ main_jar_classes.push_back (c );
241
241
}
242
242
else
243
243
java_class_loader.add_classpath_entry (path);
Original file line number Diff line number Diff line change @@ -238,23 +238,29 @@ java_class_loadert::get_parse_tree(
238
238
return parse_trees;
239
239
}
240
240
241
- // / Load all class files from a .jar file, and store name of .jar in
242
- // / `classpath_entreies`.
241
+ // / Load all class files from a .jar file
243
242
// / \param jar_path: the path for the .jar to load
244
- void java_class_loadert::load_entire_jar (
243
+ std::vector<irep_idt> java_class_loadert::load_entire_jar (
245
244
const std::string &jar_path)
246
245
{
247
246
jar_index_optcreft jar_index = read_jar_file (jar_path);
248
247
if (!jar_index)
249
- return ;
248
+ return {} ;
250
249
251
250
classpath_entries.push_front (
252
251
classpath_entryt (classpath_entryt::JAR, jar_path));
253
252
253
+ std::vector<irep_idt> classes;
254
+
254
255
for (const auto &e : jar_index->get ())
256
+ {
255
257
operator ()(e.first );
258
+ classes.push_back (e.first );
259
+ }
256
260
257
261
classpath_entries.pop_front ();
262
+
263
+ return classes;
258
264
}
259
265
260
266
java_class_loadert::jar_index_optcreft java_class_loadert::read_jar_file (
Original file line number Diff line number Diff line change @@ -97,7 +97,7 @@ class java_class_loadert:public messaget
97
97
static std::string file_to_class_name (const std::string &);
98
98
static std::string class_name_to_file (const irep_idt &);
99
99
100
- void load_entire_jar (const std::string &jar_path);
100
+ std::vector<irep_idt> load_entire_jar (const std::string &jar_path);
101
101
102
102
const jar_indext &get_jar_index (const std::string &jar_path)
103
103
{
You can’t perform that action at this time.
0 commit comments