From 38f364fdefcc4ec44c64fda76e499bc9e893c07c Mon Sep 17 00:00:00 2001 From: XieHan Date: Thu, 15 Oct 2020 14:17:21 +0800 Subject: [PATCH] Update WFGraphNode --- src/factory/WFGraphTask.cc | 12 ++++++++---- src/factory/WFGraphTask.h | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/factory/WFGraphTask.cc b/src/factory/WFGraphTask.cc index 84eeee51..1fec7324 100644 --- a/src/factory/WFGraphTask.cc +++ b/src/factory/WFGraphTask.cc @@ -30,14 +30,18 @@ SubTask *WFGraphNode::done() this->user_data = (void *)1; } else + delete this; + + return series->pop(); +} + +WFGraphNode::~WFGraphNode() +{ + if (this->user_data) { for (WFGraphNode *node : this->successors) node->WFCounterTask::count(); - - delete this; } - - return series->pop(); } WFGraphNode& WFGraphTask::create_graph_node(SubTask *task) diff --git a/src/factory/WFGraphTask.h b/src/factory/WFGraphTask.h index 25bfb389..920d355f 100644 --- a/src/factory/WFGraphTask.h +++ b/src/factory/WFGraphTask.h @@ -47,7 +47,7 @@ protected: protected: WFGraphNode() : WFCounterTask(0, nullptr) { } - virtual ~WFGraphNode() { } + virtual ~WFGraphNode(); friend class WFGraphTask; };