diff options
author | John Hodge <tpg@mutabah.net> | 2016-08-08 16:51:21 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-08-08 16:51:21 +0800 |
commit | e11db000af305d834efc5f79cf9606b8a8ae2d63 (patch) | |
tree | 7ed34199b2f8afd597960a02a4d55d4594967ab9 /src | |
parent | aad5506515674f13c3a2f8bf55575ee481062387 (diff) | |
download | mrust-e11db000af305d834efc5f79cf9606b8a8ae2d63.tar.gz |
HIR ExprPtr - Support resetting internal pointer
Diffstat (limited to 'src')
-rw-r--r-- | src/hir/expr_ptr.cpp | 5 | ||||
-rw-r--r-- | src/hir/expr_ptr.hpp | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/hir/expr_ptr.cpp b/src/hir/expr_ptr.cpp index dc20f84c..8231239c 100644 --- a/src/hir/expr_ptr.cpp +++ b/src/hir/expr_ptr.cpp @@ -21,3 +21,8 @@ this->node = nullptr; return rv; } +void ::HIR::ExprPtr::reset(::HIR::ExprNode* p) +{ + delete node; + node = p; +} diff --git a/src/hir/expr_ptr.hpp b/src/hir/expr_ptr.hpp index a4c04d2b..d9f0982a 100644 --- a/src/hir/expr_ptr.hpp +++ b/src/hir/expr_ptr.hpp @@ -40,6 +40,7 @@ public: ::std::unique_ptr< ::HIR::ExprNode> into_unique(); operator bool () const { return node != nullptr; } ::HIR::ExprNode* get() const { return node; } + void reset(::HIR::ExprNode* p); ::HIR::ExprNode& operator*() { return *node; } const ::HIR::ExprNode& operator*() const { return *node; } |