From: 박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 Date: Thu, 27 Sep 2018 05:53:12 +0000 (+0900) Subject: [coco] Unlink Use on destruction (#1649) X-Git-Tag: nncc_backup~1699 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eeb22164255cd4976f76f2a6913a572fc7269876;p=platform%2Fcore%2Fml%2Fnnfw.git [coco] Unlink Use on destruction (#1649) This commit revises Use's destructor to unlink itself from linked Object (if exists). Signed-off-by: Jonghyun Park --- diff --git a/contrib/coco/core/include/coco/IR/Use.h b/contrib/coco/core/include/coco/IR/Use.h index c067c92..6538293 100644 --- a/contrib/coco/core/include/coco/IR/Use.h +++ b/contrib/coco/core/include/coco/IR/Use.h @@ -18,6 +18,9 @@ public: } public: + ~Use() { value(nullptr); } + +public: Object *value(void) const { return _value; } public: diff --git a/contrib/coco/core/src/IR/Use.test.cpp b/contrib/coco/core/src/IR/Use.test.cpp index 35de56b..ea9e01e 100644 --- a/contrib/coco/core/src/IR/Use.test.cpp +++ b/contrib/coco/core/src/IR/Use.test.cpp @@ -5,8 +5,12 @@ #include "Consumer.mock.h" +#include + #include +using nncc::foundation::make_unique; + namespace { class UseTest : public ::testing::Test @@ -50,3 +54,17 @@ TEST_F(UseTest, value) ASSERT_EQ(o->uses()->size(), 0); } + +TEST_F(UseTest, destructor) +{ + ::mock::Consumer consumer; + + auto o = obj_mgr.create(nncc::core::ADT::feature::Shape{1, 1, 1}); + auto use = make_unique(&consumer); + + use->value(o); + use.reset(); + + // ~Use SHOULD unlink itself from linked Object (if exists) + ASSERT_EQ(o->uses()->size(), 0); +}