@@ -802,44 +802,40 @@ code_blockt get_user_specified_clinit_body(
802
802
}
803
803
const auto class_entry =
804
804
static_values_json.find (id2string (strip_java_namespace_prefix (class_id)));
805
- if (class_entry != static_values_json.end ())
805
+ if (class_entry != static_values_json.end () && class_entry-> second . is_object () )
806
806
{
807
- const auto &class_json_value = class_entry->second ;
808
- if (class_json_value.is_object ())
807
+ const auto &class_json_object = to_json_object (class_entry->second );
808
+ std::map<symbol_exprt, jsont> static_field_values;
809
+ for (const auto &symbol_pair :
810
+ equal_range (class_to_declared_symbols_map, class_id))
809
811
{
810
- const auto &class_json_object = to_json_object (class_json_value);
811
- std::map<symbol_exprt, jsont> static_field_values;
812
- for (const auto &symbol_pair :
813
- equal_range (class_to_declared_symbols_map, class_id))
812
+ const symbolt &symbol = symbol_pair.second ;
813
+ if (symbol.is_static_lifetime )
814
814
{
815
- const symbolt &symbol = symbol_pair.second ;
816
- if (symbol.is_static_lifetime )
815
+ const symbol_exprt &static_field_expr = symbol.symbol_expr ();
816
+ const auto &static_field_entry =
817
+ class_json_object.find (id2string (symbol.base_name ));
818
+ if (static_field_entry != class_json_object.end ())
817
819
{
818
- const symbol_exprt &static_field_expr = symbol.symbol_expr ();
819
- const auto &static_field_entry =
820
- class_json_object.find (id2string (symbol.base_name ));
821
- if (static_field_entry != class_json_object.end ())
822
- {
823
- static_field_values.insert (
824
- {static_field_expr, static_field_entry->second });
825
- }
820
+ static_field_values.insert (
821
+ {static_field_expr, static_field_entry->second });
826
822
}
827
823
}
828
- code_blockt body;
829
- for (const auto &value_pair : static_field_values)
830
- {
831
- assign_from_json (
832
- value_pair.first ,
833
- value_pair.second ,
834
- real_clinit_name,
835
- body,
836
- symbol_table,
837
- needed_lazy_methods,
838
- max_user_array_length,
839
- references);
840
- }
841
- return body;
842
824
}
825
+ code_blockt body;
826
+ for (const auto &value_pair : static_field_values)
827
+ {
828
+ assign_from_json (
829
+ value_pair.first ,
830
+ value_pair.second ,
831
+ real_clinit_name,
832
+ body,
833
+ symbol_table,
834
+ needed_lazy_methods,
835
+ max_user_array_length,
836
+ references);
837
+ }
838
+ return body;
843
839
}
844
840
return code_blockt{{code_function_callt{clinit_func->symbol_expr ()}}};
845
841
}
0 commit comments