Skip to content

Commit cd9b839

Browse files
author
Thomas Kiley
committed
Revert "Merge pull request diffblue#1982 from NathanJPhillips/bugfix/load-object-once"
This reverts commit 772b603, reversing changes made to 05a7b4a.
1 parent 58beeb4 commit cd9b839

File tree

10 files changed

+12
-90
lines changed

10 files changed

+12
-90
lines changed
-228 Bytes
Binary file not shown.

regression/cbmc-java/invalid_classpath/Test.java

-3
This file was deleted.

regression/cbmc-java/invalid_classpath/test-jar.desc

-10
This file was deleted.

regression/cbmc-java/invalid_classpath/test-path.desc

-10
This file was deleted.
Binary file not shown.

regression/cbmc-java/provide_object_implementation/java/lang/Object.java

-33
This file was deleted.

regression/cbmc-java/provide_object_implementation/test.desc

-10
This file was deleted.

src/java_bytecode/java_bytecode_convert_class.cpp

-6
Original file line numberDiff line numberDiff line change
@@ -185,12 +185,6 @@ void java_bytecode_convert_classt::operator()(
185185
PRECONDITION(!parse_trees.empty());
186186
const irep_idt &class_name = parse_trees.front().parsed_class.name;
187187

188-
if(symbol_table.has_symbol("java::" + id2string(class_name)))
189-
{
190-
debug() << "Skip class " << class_name << " (already loaded)" << eom;
191-
return;
192-
}
193-
194188
// Add array types to the symbol table
195189
add_array_types(symbol_table);
196190

src/java_bytecode/java_class_loader.cpp

+12-17
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ java_class_loadert::parse_tree_with_overlayst &java_class_loadert::operator()(
8181
optionalt<java_bytecode_parse_treet> java_class_loadert::get_class_from_jar(
8282
const irep_idt &class_name,
8383
const std::string &jar_file,
84-
const jar_indext &jar_index,
8584
java_class_loader_limitt &class_loader_limit)
8685
{
86+
jar_indext &jar_index = jars_by_path.at(jar_file);
8787
auto jar_index_it = jar_index.find(class_name);
8888
if(jar_index_it == jar_index.end())
8989
return {};
@@ -112,11 +112,9 @@ java_class_loadert::get_parse_tree(
112112
// First add all given JAR files
113113
for(const auto &jar_file : jar_files)
114114
{
115-
jar_index_optcreft index = read_jar_file(class_loader_limit, jar_file);
116-
if(!index)
117-
continue;
115+
read_jar_file(class_loader_limit, jar_file);
118116
optionalt<java_bytecode_parse_treet> parse_tree =
119-
get_class_from_jar(class_name, jar_file, *index, class_loader_limit);
117+
get_class_from_jar(class_name, jar_file, class_loader_limit);
120118
if(parse_tree)
121119
parse_trees.push_back(*parse_tree);
122120
}
@@ -132,26 +130,23 @@ java_class_loadert::get_parse_tree(
132130

133131
// This does not read from the jar file but from the jar_filet object we
134132
// just created
135-
jar_index_optcreft index = read_jar_file(class_loader_limit, core_models);
136-
if(index)
137-
{
138-
optionalt<java_bytecode_parse_treet> parse_tree =
139-
get_class_from_jar(class_name, core_models, *index, class_loader_limit);
140-
if(parse_tree)
141-
parse_trees.push_back(*parse_tree);
142-
}
133+
read_jar_file(class_loader_limit, core_models);
134+
135+
optionalt<java_bytecode_parse_treet> parse_tree =
136+
get_class_from_jar(class_name, core_models, class_loader_limit);
137+
if(parse_tree)
138+
parse_trees.push_back(*parse_tree);
143139
}
144140

145141
// Then add everything on the class path
146142
for(const auto &cp_entry : config.java.classpath)
147143
{
148144
if(has_suffix(cp_entry, ".jar"))
149145
{
150-
jar_index_optcreft index = read_jar_file(class_loader_limit, cp_entry);
151-
if(!index)
152-
continue;
146+
read_jar_file(class_loader_limit, cp_entry);
147+
153148
optionalt<java_bytecode_parse_treet> parse_tree =
154-
get_class_from_jar(class_name, cp_entry, *index, class_loader_limit);
149+
get_class_from_jar(class_name, cp_entry, class_loader_limit);
155150
if(parse_tree)
156151
parse_trees.push_back(*parse_tree);
157152
}

src/java_bytecode/java_class_loader.h

-1
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,6 @@ class java_class_loadert:public messaget
160160
optionalt<java_bytecode_parse_treet> get_class_from_jar(
161161
const irep_idt &class_name,
162162
const std::string &jar_file,
163-
const jar_indext &jar_index,
164163
java_class_loader_limitt &class_loader_limit);
165164
};
166165

0 commit comments

Comments
 (0)