From e11db000af305d834efc5f79cf9606b8a8ae2d63 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Mon, 8 Aug 2016 16:51:21 +0800 Subject: HIR ExprPtr - Support resetting internal pointer --- src/hir/expr_ptr.cpp | 5 +++++ src/hir/expr_ptr.hpp | 1 + 2 files changed, 6 insertions(+) (limited to 'src') 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; } -- cgit v1.2.3