@@ -769,57 +769,54 @@ code_ifthenelset get_clinit_wrapper_body(
769
769
770
770
code_blockt get_user_specified_clinit_body (
771
771
const irep_idt &class_id,
772
- const optionalt< json_objectt> &static_values_json,
772
+ const json_objectt &static_values_json,
773
773
symbol_table_baset &symbol_table,
774
774
message_handlert &message_handler,
775
775
optionalt<ci_lazy_methods_neededt> needed_lazy_methods,
776
776
size_t max_user_array_length,
777
777
std::unordered_map<std::string, object_creation_referencet> &references)
778
778
{
779
779
const irep_idt &real_clinit_name = clinit_function_name (class_id);
780
- if (static_values_json.has_value ())
780
+ const auto class_entry =
781
+ static_values_json.find (id2string (strip_java_namespace_prefix (class_id)));
782
+ if (class_entry != static_values_json.end ())
781
783
{
782
- const auto class_entry =
783
- static_values_json->find (id2string (strip_java_namespace_prefix (class_id)));
784
- if (class_entry != static_values_json->end ())
784
+ const auto &class_json_value = class_entry->second ;
785
+ if (class_json_value.is_object ())
785
786
{
786
- const auto &class_json_value = class_entry->second ;
787
- if (class_json_value.is_object ())
787
+ const auto &class_json_object = to_json_object (class_json_value);
788
+ std::map<symbol_exprt, jsont> static_field_values;
789
+ for (const auto &symbol_pair : symbol_table)
788
790
{
789
- const auto &class_json_object = to_json_object (class_json_value);
790
- std::map<symbol_exprt, jsont> static_field_values;
791
- for (const auto &symbol_pair : symbol_table)
791
+ const symbolt &symbol = symbol_pair.second ;
792
+ if (
793
+ declaring_class (symbol) && *declaring_class (symbol) == class_id &&
794
+ symbol.is_static_lifetime )
792
795
{
793
- const symbolt &symbol = symbol_pair. second ;
794
- if (
795
- declaring_class (symbol) && * declaring_class (symbol) == class_id &&
796
- symbol. is_static_lifetime )
796
+ const symbol_exprt &static_field_expr = symbol. symbol_expr () ;
797
+ const auto &static_field_entry =
798
+ class_json_object. find ( id2string (symbol. base_name ));
799
+ if (static_field_entry != class_json_object. end () )
797
800
{
798
- const symbol_exprt &static_field_expr = symbol.symbol_expr ();
799
- const auto &static_field_entry =
800
- class_json_object.find (id2string (symbol.base_name ));
801
- if (static_field_entry != class_json_object.end ())
802
- {
803
- static_field_values.insert (
804
- {static_field_expr, static_field_entry->second });
805
- }
801
+ static_field_values.insert (
802
+ {static_field_expr, static_field_entry->second });
806
803
}
807
804
}
808
- code_blockt body;
809
- for (const auto &value_pair : static_field_values)
810
- {
811
- assign_from_json (
812
- value_pair.first ,
813
- value_pair.second ,
814
- real_clinit_name,
815
- body,
816
- symbol_table,
817
- needed_lazy_methods,
818
- max_user_array_length,
819
- references);
820
- }
821
- return body;
822
805
}
806
+ code_blockt body;
807
+ for (const auto &value_pair : static_field_values)
808
+ {
809
+ assign_from_json (
810
+ value_pair.first ,
811
+ value_pair.second ,
812
+ real_clinit_name,
813
+ body,
814
+ symbol_table,
815
+ needed_lazy_methods,
816
+ max_user_array_length,
817
+ references);
818
+ }
819
+ return body;
823
820
}
824
821
}
825
822
if (const auto clinit_func = symbol_table.lookup (real_clinit_name))
0 commit comments