@@ -302,10 +302,9 @@ exprt java_string_library_preprocesst::convert_exprt_to_string_exprt(
302
302
{
303
303
PRECONDITION (implements_java_char_sequence (op_to_process.type ()));
304
304
string_exprt string_expr=fresh_string_expr (loc, symbol_table, init_code);
305
- init_code. add ( code_assign_java_string_to_string_expr (
306
- string_expr, op_to_process, symbol_table) );
305
+ code_assign_java_string_to_string_expr (
306
+ string_expr, op_to_process, symbol_table, init_code );
307
307
exprt string_expr_sym=fresh_string_expr_symbol (loc, symbol_table, init_code);
308
- init_code.add (code_declt (string_expr_sym));
309
308
init_code.add (code_assignt (string_expr_sym, string_expr));
310
309
return string_expr;
311
310
}
@@ -781,13 +780,16 @@ codet java_string_library_preprocesst::
781
780
// / \param lhs: a string expression
782
781
// / \param rhs: an expression representing a java string
783
782
// / \param symbol_table: symbol table
784
- // / \return return the following code:
783
+ // / \param code: code block that gets appended the following code:
785
784
// / ~~~~~~~~~~~~~~~~~~~~~~
786
785
// / lhs.length=rhs->length
787
786
// / lhs.data=*(rhs->data)
788
787
// / ~~~~~~~~~~~~~~~~~~~~~~
789
- codet java_string_library_preprocesst::code_assign_java_string_to_string_expr (
790
- const string_exprt &lhs, const exprt &rhs, symbol_tablet &symbol_table)
788
+ void java_string_library_preprocesst::code_assign_java_string_to_string_expr (
789
+ const string_exprt &lhs,
790
+ const exprt &rhs,
791
+ symbol_tablet &symbol_table,
792
+ code_blockt &code)
791
793
{
792
794
PRECONDITION (implements_java_char_sequence (rhs.type ()));
793
795
@@ -806,15 +808,13 @@ codet java_string_library_preprocesst::code_assign_java_string_to_string_expr(
806
808
dereference_exprt rhs_data (member_data, member_data.type ().subtype ());
807
809
808
810
// Assignments
809
- code_blockt code;
810
811
code.add (code_assignt (lhs.length (), rhs_length));
811
812
812
813
// We always assume data of a String is not null
813
814
not_exprt data_not_null (equal_exprt (
814
815
member_data, null_pointer_exprt (to_pointer_type (member_data.type ()))));
815
816
code.add (code_assumet (data_not_null));
816
817
code.add (code_assignt (lhs.content (), rhs_data));
817
- return code;
818
818
}
819
819
820
820
// / \param lhs: an expression representing a java string
@@ -1140,8 +1140,8 @@ codet java_string_library_preprocesst::make_string_to_char_array_code(
1140
1140
1141
1141
// string_expr = {this->length, this->data}
1142
1142
string_exprt string_expr=fresh_string_expr (loc, symbol_table, code);
1143
- code. add ( code_assign_java_string_to_string_expr (
1144
- string_expr, string_argument, symbol_table) );
1143
+ code_assign_java_string_to_string_expr (
1144
+ string_expr, string_argument, symbol_table, code );
1145
1145
exprt string_expr_sym=fresh_string_expr_symbol (
1146
1146
loc, symbol_table, code);
1147
1147
code.add (code_assignt (string_expr_sym, string_expr));
@@ -1391,8 +1391,11 @@ exprt java_string_library_preprocesst::make_argument_for_format(
1391
1391
pointer_typet string_pointer=
1392
1392
java_reference_type (symbol_typet (" java::java.lang.String" ));
1393
1393
typecast_exprt arg_i_as_string (arg_i, string_pointer);
1394
- code_not_null.add (code_assign_java_string_to_string_expr (
1395
- to_string_expr (field_expr), arg_i_as_string, symbol_table));
1394
+ code_assign_java_string_to_string_expr (
1395
+ to_string_expr (field_expr),
1396
+ arg_i_as_string,
1397
+ symbol_table,
1398
+ code_not_null);
1396
1399
exprt arg_i_string_expr_sym=fresh_string_expr_symbol (
1397
1400
loc, symbol_table, code_not_null);
1398
1401
code_not_null.add (code_assignt (
@@ -1651,8 +1654,7 @@ codet java_string_library_preprocesst::make_copy_string_code(
1651
1654
// Assign the argument to string_expr
1652
1655
code_typet::parametert op=type.parameters ()[0 ];
1653
1656
symbol_exprt arg0 (op.get_identifier (), op.type ());
1654
- code.add (code_assign_java_string_to_string_expr (
1655
- string_expr, arg0, symbol_table));
1657
+ code_assign_java_string_to_string_expr (string_expr, arg0, symbol_table, code);
1656
1658
1657
1659
// Assign string_expr to string_expr_sym
1658
1660
exprt string_expr_sym=fresh_string_expr_symbol (loc, symbol_table, code);
@@ -1693,8 +1695,7 @@ codet java_string_library_preprocesst::make_copy_constructor_code(
1693
1695
// Assign argument to a string_expr
1694
1696
code_typet::parameterst params=type.parameters ();
1695
1697
symbol_exprt arg1 (params[1 ].get_identifier (), params[1 ].type ());
1696
- code.add (code_assign_java_string_to_string_expr (
1697
- string_expr, arg1, symbol_table));
1698
+ code_assign_java_string_to_string_expr (string_expr, arg1, symbol_table, code);
1698
1699
1699
1700
// Assign string_expr to symbol to keep track of it
1700
1701
exprt string_expr_sym=fresh_string_expr_symbol (loc, symbol_table, code);
@@ -1735,8 +1736,8 @@ codet java_string_library_preprocesst::make_string_length_code(
1735
1736
string_exprt str_expr=fresh_string_expr (loc, symbol_table, code);
1736
1737
1737
1738
// Assign this to str_expr
1738
- code. add (
1739
- code_assign_java_string_to_string_expr ( str_expr, arg_this, symbol_table) );
1739
+ code_assign_java_string_to_string_expr (
1740
+ str_expr, arg_this, symbol_table, code );
1740
1741
1741
1742
// Assign str_expr to str_expr_sym for that expression to be present in the
1742
1743
// symbol table in order to be processed by the string solver
0 commit comments