diff --git a/paddle/operators/net_op.h b/paddle/operators/net_op.h index ce7da1f383672bb2b2dd78881a6e63ef8dba620f..e8720c9609979215b19e525fdc7beb7563365e01 100644 --- a/paddle/operators/net_op.h +++ b/paddle/operators/net_op.h @@ -89,33 +89,18 @@ class NetOp : public framework::OperatorBase { /** * @brief Add an operator by ptr */ - void AddOp(framework::OperatorBase* op, bool own) { + void AddOp(std::unique_ptr&& op) { PADDLE_ENFORCE(!add_op_done_, "Cannot AddOp when this network is sealed"); PADDLE_ENFORCE_NOT_NULL(op, "Cannot Insert Null op"); - if (!own) { - op = op->Clone().release(); - } - ops_.emplace_back(op); - } - - void AddOp(std::unique_ptr&& op) { - AddOp(op.release(), true); + ops_.push_back(std::move(op)); } - void InsertOp(size_t pos, framework::OperatorBase* op, bool own) { + void InsertOp(size_t pos, std::unique_ptr&& op) { PADDLE_ENFORCE(!add_op_done_, "Cannot InsertOp when this network is sealed"); PADDLE_ENFORCE_NOT_NULL(op, "Cannot Insert Null op"); PADDLE_ENFORCE_LE(pos, ops_.size(), "Out of range"); - if (!own) { - op = op->Clone().release(); - } - ops_.insert(ops_.begin() + pos, - std::unique_ptr(op)); - } - - void InsertOp(size_t pos, std::unique_ptr&& op) { - InsertOp(pos, op.release(), true); + ops_.insert(ops_.begin() + pos, std::move(op)); } void InsertOp(size_t pos, const framework::OperatorBase& op) {