Fixed latent memory leak issue 89/71089/3 accepted/tizen/common/20160610.182446 accepted/tizen/ivi/20160610.114149 accepted/tizen/mobile/20160610.114052 accepted/tizen/tv/20160610.114107 accepted/tizen/wearable/20160610.114138 submit/tizen/20160610.024249
authorTae-Young Chung <ty83.chung@samsung.com>
Tue, 24 May 2016 05:16:35 +0000 (14:16 +0900)
committerTae-Young Chung <ty83.chung@samsung.com>
Thu, 9 Jun 2016 09:59:06 +0000 (18:59 +0900)
Change-Id: Icb565007c63f9e2b9d8d2b5ce281a3476973ea43
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
mv_face/face/src/mv_face_open.cpp
mv_image/image/src/Tracking/AsyncTracker.cpp
packaging/capi-media-vision.spec
test/testsuites/face/face_test_suite.c

index 917924e..07e07df 100644 (file)
@@ -726,13 +726,16 @@ int mv_face_recognition_model_query_labels_open(
 
        const std::set<int>& learnedLabels = pRecModel->getFaceLabels();
        *number_of_labels = learnedLabels.size();
-       (*labels) = (int*)malloc(sizeof(int) * (*number_of_labels));
 
-       std::set<int>::const_iterator it = learnedLabels.begin();
-       int i = 0;
-       for (; it != learnedLabels.end(); ++it) {
-               (*labels)[i] = *it;
-               ++i;
+       if ((*number_of_labels)) {
+               (*labels) = (int*)malloc(sizeof(int) * (*number_of_labels));
+
+               std::set<int>::const_iterator it = learnedLabels.begin();
+               int i = 0;
+               for (; it != learnedLabels.end(); ++it) {
+                       (*labels)[i] = *it;
+                       ++i;
+               }
        }
 
        LOGD("List of the labels learned by the recognition model has been retrieved");
index 5ae18ae..389fc4b 100644 (file)
@@ -78,8 +78,10 @@ bool AsyncTracker::track(
 
        const int err = pthread_create(&m_thread, NULL, asyncTrack, this);
 
-       if (0 == err)
+       if (0 == err) {
+               pthread_join(m_thread, NULL);
                return getResult(result);
+       }
 
        pthread_spin_lock(&m_isRunGuard);
        m_isRun = false;
index c9c241a..12729c8 100644 (file)
@@ -1,7 +1,7 @@
 Name:        capi-media-vision
 Summary:     Media Vision library for Tizen Native API
-Version:     0.3.17
-Release:     1
+Version:     0.3.18
+Release:     0
 Group:       Multimedia/Framework
 License:     Apache-2.0 and BSD-2.0
 Source0:     %{name}-%{version}.tar.gz
index aceb9d0..5cfd431 100644 (file)
@@ -1358,6 +1358,7 @@ int perform_mv_face_tracking_model_prepare(mv_face_tracking_model_h model)
                err = load_mv_source_from_file(init_frame_file_name, preparation_frame);
 
        free(init_frame_file_name);
+       init_frame_file_name = NULL;
 
        if (MEDIA_VISION_ERROR_NONE != err) {
                printf(TEXT_RED "ERROR: Errors were occurred during preparation "
@@ -1451,6 +1452,8 @@ int perform_mv_face_tracking_model_prepare(mv_face_tracking_model_h model)
                                "source! Error code: %i\n" TEXT_RESET, err2);
        }
 
+       mv_destroy_engine_config(eng_config);
+       eng_config = NULL;
        return err;
 }