}
if (copy) {
- copy->setflag(status_flags::dynallocated);
copy->clearflag(status_flags::hash_calculated | status_flags::expanded);
return *copy;
} else
exvector resv;
for (auto & mi : cmap)
resv.push_back((mi.first)*(mi.second));
- return (new add(resv))->setflag(status_flags::dynallocated);
+ return dynallocate<add>(resv);
} else {
}
/** Perform automatic non-interruptive term rewriting rules. */
-ex basic::eval(int level) const
+ex basic::eval() const
{
// There is nothing to do for basic objects:
return hold();
// Something changed, clone the object
basic *copy = duplicate();
- copy->setflag(status_flags::dynallocated);
copy->clearflag(status_flags::hash_calculated | status_flags::expanded);
// Substitute the changed operand