diff options
author | Morgan Deters <mdeters@gmail.com> | 2010-02-22 07:40:23 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2010-02-22 07:40:23 +0000 |
commit | 6bdd652a8511df2f341b30daec60d5402986ed5b (patch) | |
tree | 0f506a4d2993f9d9cae70420af3cb58b3ca6b784 /src/expr/expr.cpp | |
parent | 69d6fcbf56ed823461189f2488e5c2b2f44dca02 (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.cpp | 6 |
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); } |