@@ -366,7 +366,8 @@ void initialize_nondet_string_fields(
366
366
const source_locationt &loc,
367
367
const irep_idt &function_id,
368
368
symbol_table_baset &symbol_table,
369
- bool printable)
369
+ bool printable,
370
+ allocate_objectst &allocate_objects)
370
371
{
371
372
PRECONDITION (
372
373
java_string_library_preprocesst
@@ -402,11 +403,10 @@ void initialize_nondet_string_fields(
402
403
403
404
// / \todo Refactor with make_nondet_string_expr
404
405
// length_expr = nondet(int);
405
- const symbolt length_sym = fresh_java_symbol (
406
- java_int_type (), " tmp_object_factory " , loc, function_id, symbol_table);
407
- const symbol_exprt length_expr = length_sym. symbol_expr ( );
406
+ const symbol_exprt length_expr =
407
+ allocate_objects. allocate_automatic_local_object (
408
+ java_int_type (), " tmp_object_factory " );
408
409
const side_effect_expr_nondett nondet_length (length_expr.type (), loc);
409
- code.add (code_declt (length_expr));
410
410
code.add (code_assignt (length_expr, nondet_length));
411
411
412
412
// assume (length_expr >= min_nondet_string_length);
@@ -709,17 +709,14 @@ symbol_exprt java_object_factoryt::gen_nondet_subtype_pointer_init(
709
709
size_t depth,
710
710
const source_locationt &location)
711
711
{
712
- symbolt new_symbol = fresh_java_symbol (
713
- replacement_pointer,
714
- " tmp_object_factory" ,
715
- location,
716
- object_factory_parameters.function_id ,
717
- symbol_table);
712
+ const symbol_exprt new_symbol_expr =
713
+ allocate_objects.allocate_automatic_local_object (
714
+ replacement_pointer, " tmp_object_factory" );
718
715
719
716
// Generate a new object into this new symbol
720
717
gen_nondet_init (
721
718
assignments,
722
- new_symbol. symbol_expr () ,
719
+ new_symbol_expr ,
723
720
false , // is_sub
724
721
" " , // class_identifier
725
722
false , // skip_classid
@@ -729,7 +726,7 @@ symbol_exprt java_object_factoryt::gen_nondet_subtype_pointer_init(
729
726
update_in_placet::NO_UPDATE_IN_PLACE,
730
727
location);
731
728
732
- return new_symbol. symbol_expr () ;
729
+ return new_symbol_expr ;
733
730
}
734
731
735
732
// / Creates an alternate_casest vector in which each item contains an
@@ -874,7 +871,8 @@ void java_object_factoryt::gen_nondet_struct_init(
874
871
location,
875
872
object_factory_parameters.function_id ,
876
873
symbol_table,
877
- object_factory_parameters.string_printable );
874
+ object_factory_parameters.string_printable ,
875
+ allocate_objects);
878
876
}
879
877
880
878
assignments.add (code_assignt (expr, *initial_object));
0 commit comments