Skip to content

Commit df6e264

Browse files
committed
Equip bv_pointerst::postponedt with a constructor
This permits constructing list entries in place rather than first creating a dummy element and then replacing each member.
1 parent 66d9d17 commit df6e264

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

src/solvers/flattening/bv_pointers.cpp

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,7 @@ literalt bv_pointerst::convert_rest(const exprt &expr)
157157
// we postpone
158158
literalt l=prop.new_variable();
159159

160-
postponed_list.push_back(postponedt());
161-
postponed_list.back().op = convert_bv(operands[0]);
162-
postponed_list.back().bv.push_back(l);
163-
postponed_list.back().expr = expr;
160+
postponed_list.emplace_back(bvt{1, l}, convert_bv(operands[0]), expr);
164161

165162
return l;
166163
}
@@ -650,15 +647,10 @@ bvt bv_pointerst::convert_bitvector(const exprt &expr)
650647
// we postpone until we know the objects
651648
std::size_t width=boolbv_width(expr.type());
652649

653-
bvt bv = prop.new_variables(width);
654-
655-
postponed_list.push_back(postponedt());
650+
postponed_list.emplace_back(
651+
prop.new_variables(width), convert_bv(to_unary_expr(expr).op()), expr);
656652

657-
postponed_list.back().op = convert_bv(to_unary_expr(expr).op());
658-
postponed_list.back().bv=bv;
659-
postponed_list.back().expr=expr;
660-
661-
return bv;
653+
return postponed_list.back().bv;
662654
}
663655
else if(
664656
expr.id() == ID_pointer_object &&

src/solvers/flattening/bv_pointers.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@ class bv_pointerst:public boolbvt
9898
{
9999
bvt bv, op;
100100
exprt expr;
101+
102+
postponedt(bvt _bv, bvt _op, exprt _expr)
103+
: bv(std::move(_bv)), op(std::move(_op)), expr(std::move(_expr))
104+
{
105+
}
101106
};
102107

103108
typedef std::list<postponedt> postponed_listt;

0 commit comments

Comments
 (0)