namespace theory {
namespace arrays {
+Info::Info(context::Context* c, Backtracker<TNode>* bck)
+ : isNonLinear(c, false),
+ rIntro1Applied(c, false),
+ modelRep(c,TNode()),
+ constArr(c,TNode()),
+ weakEquivPointer(c,TNode()),
+ weakEquivIndex(c,TNode()),
+ weakEquivSecondary(c,TNode()),
+ weakEquivSecondaryReason(c,TNode())
+{
+ indices = new(true)CTNodeList(c);
+ stores = new(true)CTNodeList(c);
+ in_stores = new(true)CTNodeList(c);
+}
+
+Info::~Info() {
+ indices->deleteSelf();
+ stores->deleteSelf();
+ in_stores->deleteSelf();
+}
+
ArrayInfo::ArrayInfo(context::Context* c, Backtracker<TNode>* b)
: ct(c), bck(b), info_map(),
d_mergeInfoTimer("theory::arrays::mergeInfoTimer"),
CNodeInfoMap::iterator it = info_map.find(a);
if(it == info_map.end()) {
- temp_indices = new(true) CTNodeList(ct);
- temp_indices->push_back(i);
-
temp_info = new Info(ct, bck);
- temp_info->indices = temp_indices;
+ temp_indices = temp_info->indices;
+ temp_indices->push_back(i);
info_map[a] = temp_info;
} else {
temp_indices = (*it).second->indices;
CTNodeList* stores;
CTNodeList* in_stores;
- Info(context::Context* c, Backtracker<TNode>* bck)
- : isNonLinear(c, false),
- rIntro1Applied(c, false),
- modelRep(c,TNode()),
- constArr(c,TNode()),
- weakEquivPointer(c,TNode()),
- weakEquivIndex(c,TNode()),
- weakEquivSecondary(c,TNode()),
- weakEquivSecondaryReason(c,TNode()) {
- indices = new(true)CTNodeList(c);
- stores = new(true)CTNodeList(c);
- in_stores = new(true)CTNodeList(c);
- }
-
- ~Info() {
- indices->deleteSelf();
- stores->deleteSelf();
- in_stores->deleteSelf();
- }
+ Info(context::Context* c, Backtracker<TNode>* bck);
+ ~Info();
/**
* prints the information