summaryrefslogtreecommitdiff
path: root/src/expr/expr.cpp
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-02-22 07:40:23 +0000
committerMorgan Deters <mdeters@gmail.com>2010-02-22 07:40:23 +0000
commit6bdd652a8511df2f341b30daec60d5402986ed5b (patch)
tree0f506a4d2993f9d9cae70420af3cb58b3ca6b784 /src/expr/expr.cpp
parent69d6fcbf56ed823461189f2488e5c2b2f44dca02 (diff)
resolve bug 32; public-facing interface functions in expr package must set current NodeManager
Diffstat (limited to 'src/expr/expr.cpp')
-rw-r--r--src/expr/expr.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/expr/expr.cpp b/src/expr/expr.cpp
index 032735ff0..18c0fdbab 100644
--- a/src/expr/expr.cpp
+++ b/src/expr/expr.cpp
@@ -43,11 +43,13 @@ ExprManager* Expr::getExprManager() const {
}
Expr::~Expr() {
+ ExprManagerScope ems(*this);
delete d_node;
}
Expr& Expr::operator=(const Expr& e) {
if(this != &e) {
+ ExprManagerScope ems(*this);
delete d_node;
d_node = new Node(*e.d_node);
d_em = e.d_em;
@@ -79,7 +81,7 @@ bool Expr::operator<(const Expr& e) const {
size_t Expr::hash() const {
Assert(d_node != NULL, "Unexpected NULL expression pointer!");
- return (d_node->isNull());
+ return (d_node->hash());
}
Kind Expr::getKind() const {
@@ -93,6 +95,7 @@ size_t Expr::getNumChildren() const {
}
std::string Expr::toString() const {
+ ExprManagerScope ems(*this);
Assert(d_node != NULL, "Unexpected NULL expression pointer!");
return d_node->toString();
}
@@ -107,6 +110,7 @@ Expr::operator bool() const {
}
void Expr::toStream(std::ostream& out) const {
+ ExprManagerScope ems(*this);
d_node->toStream(out);
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback