Sets and Checks NULL value to pointer variable. 17/213517/3
authorHyunsoo Park <hance.park@samsung.com>
Fri, 6 Sep 2019 06:29:04 +0000 (15:29 +0900)
committerHyunsoo Park <hance.park@samsung.com>
Fri, 6 Sep 2019 07:55:05 +0000 (16:55 +0900)
C++ delete method just release allocated memory. It doesn't set NULL value to variable.
So i make variable to NULL after delete process.

Change-Id: Ia63a08c47b2e41263e7195aaca62bb67903d8c11
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
common/inference_engine_common_impl.cpp
packaging/inference-engine-interface.spec
vision/inference_engine_vision_impl.cpp

index def2ace7949e1c426463b15ffae3b2ea07547c08..c04c9fcce473bc004e4bbfe6ead04768df8c108c 100644 (file)
@@ -47,10 +47,13 @@ InferenceEngineCommon::InferenceEngineCommon(std::string backend)
 InferenceEngineCommon::~InferenceEngineCommon()
 {
     LOGW("ENTER");
-    destroy_t *engineDestroy = (destroy_t*)dlsym(handle, "EngineCommonDestroy");
-    // NULL CHECK?
-    engineDestroy(engine);
-    dlclose(handle);
+    if (handle){
+        destroy_t *engineDestroy = (destroy_t*)dlsym(handle, "EngineCommonDestroy");
+        engineDestroy(engine);
+        dlclose(handle);
+        engine = nullptr;
+        handle = nullptr;
+    }
 
     LOGW("LEAVE");
 }
index 52a667a4e750aa706771430e8fdd93d57340b2e6..801b0e6e41ef106ee6dc954d2244a07d39ed13f4 100644 (file)
@@ -1,7 +1,7 @@
 Name:        inference-engine-interface
 Summary:     Interface of inference engines
 Version:     0.0.1
-Release:     4
+Release:     5
 Group:       Multimedia/Framework
 License:     Apache-2.0
 Source0:     %{name}-%{version}.tar.gz
index e383f4e34d457d28910734090d343af6cb4a2c4a..ae6a2fdcf0cb1c077de8fa035132faede60f1d96 100644 (file)
@@ -47,11 +47,16 @@ InferenceEngineVision::InferenceEngineVision(std::string backend) : Common::Infe
 InferenceEngineVision::~InferenceEngineVision()
 {
     LOGW("ENTER");
-    destroy_t *engineDestroy = (destroy_t*)dlsym(handle, "EngineVisionDestroy");
-    // NULL CHECK?
-    engineDestroy(engine);
-    dlclose(handle);
+    if (handle) {
+        destroy_t *engineDestroy = (destroy_t*)dlsym(handle, "EngineVisionDestroy");
+        engineDestroy(engine);
+        dlclose(handle);
+        engine = nullptr;
+        handle = nullptr;
 
+        Common::InferenceEngineCommon::handle = nullptr;
+        Common::InferenceEngineCommon::engine = nullptr;
+    }
     LOGW("LEAVE");
 }
 
@@ -86,7 +91,6 @@ int InferenceEngineVision::Init(std::string configFile,
     }
 
     Common::InferenceEngineCommon::handle = handle;
-
     Common::InferenceEngineCommon::engine = engine;
 
     LOGW("LEAVE");