20 : next(_next), index(_index), value(_value) {
49 : root(_root), head(_head) {}
74 const auto *an =
head.get(), *bn = b.
head.get();
75 for (; an && bn; an = an->next.get(), bn = bn->next.get()) {
79 if (
int res = an->compare(*bn))
89 for (
unsigned i = 0, e =
root->
name.size(); i != e; ++i)
void vc_DeleteExpr(void *)
Expr::Width getRange() const
Expr::Width getDomain() const
static const unsigned MAGIC_HASH_CONSTANT
virtual unsigned hash() const
Returns the pre-computed hash of the current expression.
virtual Width getWidth() const =0
Class representing a complete list of updates into an array.
void extend(const ref< Expr > &index, const ref< Expr > &value)
UpdateList(const Array *_root, const ref< UpdateNode > &_head)
ref< UpdateNode > head
pointer to the most recent update node
unsigned getSize() const
size of this update list
int compare(const UpdateList &b) const
Class representing a byte update of an array.
unsigned size
size of this update sequence, including this update
int compare(const UpdateNode &b) const
const ref< UpdateNode > next
int compare(const ref &rhs) const