Prevent Issue fixes for Face
authorVamsi <vamsi.gajula@samsung.com>
Thu, 4 Apr 2013 06:09:59 +0000 (11:39 +0530)
committerVamsi <vamsi.gajula@samsung.com>
Thu, 4 Apr 2013 06:09:59 +0000 (11:39 +0530)
Change-Id: Ie591202faf1fbecdc45c5fe1d2fe2a92d5b274a5
Signed-off-by: Vamsi <vamsi.gajula@samsung.com>
src/FUixVision_FaceDetectorImpl.cpp
src/FUixVision_FaceRecognizerImpl.cpp

index faea0bc..9b1e6b1 100644 (file)
@@ -306,6 +306,7 @@ _FaceDetectorImpl::DetectFacesFromBufferN(const Tizen::Base::ByteBuffer& byteBuf
        result r = E_SUCCESS;
        int retValue = 0;
        unsigned char* pImageBuffer = null;
+       Tizen::Graphics::Rectangle* pRect = null;
 
        ClearLastResult();
 
@@ -347,7 +348,7 @@ _FaceDetectorImpl::DetectFacesFromBufferN(const Tizen::Base::ByteBuffer& byteBuf
        {
                for (int i = 0; i < __pFaceEngineInfo->g_iFaceDetectNum; i++)
                {
-                       Tizen::Graphics::Rectangle* pRect =
+                       pRect =
                                new (std::nothrow) Tizen::Graphics::Rectangle(__pFaceEngineInfo->g_FaceROI[i].x, __pFaceEngineInfo->g_FaceROI[i].y,
                                                                                                                          __pFaceEngineInfo->g_FaceROI[i].width, __pFaceEngineInfo->g_FaceROI[i].height);
 
@@ -362,8 +363,12 @@ _FaceDetectorImpl::DetectFacesFromBufferN(const Tizen::Base::ByteBuffer& byteBuf
        return pDetectList.release();
 
 CATCH:
+       if (pRect != null)
+       {
+               delete pRect;
+       }
        SetLastResult(r);
-       pDetectList->RemoveAll();
+       pDetectList->RemoveAll(true);
        return pDetectList.release();
 }
 
@@ -374,6 +379,7 @@ _FaceDetectorImpl::DetectFacesFromBitmapN(const Tizen::Graphics::Bitmap& bitmap)
        BufferInfo bitmapInfo;
        unsigned char* pImageBuffer = null;
        int retValue = 0;
+       Tizen::Graphics::Rectangle* pRect = null;
 
        ClearLastResult();
 
@@ -419,7 +425,9 @@ _FaceDetectorImpl::DetectFacesFromBitmapN(const Tizen::Graphics::Bitmap& bitmap)
        {
                for (int i = 0; i < __pFaceEngineInfo->g_iFaceDetectNum; i++)
                {
-                       Tizen::Graphics::Rectangle* pRect =
+                       //The null assingment is to avoid possible memory leak
+                       pRect = null;
+                       pRect =
                                new (std::nothrow) Tizen::Graphics::Rectangle(__pFaceEngineInfo->g_FaceROI[i].x, __pFaceEngineInfo->g_FaceROI[i].y,
                                                                                                                          __pFaceEngineInfo->g_FaceROI[i].width, __pFaceEngineInfo->g_FaceROI[i].height);
 
@@ -441,10 +449,13 @@ _FaceDetectorImpl::DetectFacesFromBitmapN(const Tizen::Graphics::Bitmap& bitmap)
        return pDetectList.release();
 
 CATCH:
-       SysLogException(NID_UIX, r, "XXXX - CATCH: _FaceDetectorImpl::DetectFacesFromBitmapN");
+       if (pRect)
+       {
+               delete pRect;
+       }
        ReleaseFaceEngine();
        SetLastResult(r);
-       pDetectList->RemoveAll();
+       pDetectList->RemoveAll(true);
        return pDetectList.release();
 }
 
@@ -456,6 +467,7 @@ _FaceDetectorImpl::DetectFacesFromBitmapN(const Tizen::Base::ByteBuffer& byteBuf
        result r = E_SUCCESS;
        int retValue = 0;
        unsigned char* pImageBuffer = null;
+       Tizen::Graphics::Rectangle* pRect = null;
 
        std::unique_ptr< unsigned char[] > pBuffer(new (std::nothrow) unsigned char[resolution.width * resolution.height]);
        SysTryReturn(NID_UIX, pBuffer != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed."
@@ -496,7 +508,9 @@ _FaceDetectorImpl::DetectFacesFromBitmapN(const Tizen::Base::ByteBuffer& byteBuf
        {
                for (int i = 0; i < __pFaceEngineInfo->g_iFaceDetectNum; i++)
                {
-                       Tizen::Graphics::Rectangle* pRect =
+                       //The null assingment is to avoid possible memory leak
+                       pRect = null;
+                       pRect =
                                new (std::nothrow) Tizen::Graphics::Rectangle(__pFaceEngineInfo->g_FaceROI[i].x, __pFaceEngineInfo->g_FaceROI[i].y,
                                                                                                                          __pFaceEngineInfo->g_FaceROI[i].width, __pFaceEngineInfo->g_FaceROI[i].height);
 
@@ -513,9 +527,13 @@ _FaceDetectorImpl::DetectFacesFromBitmapN(const Tizen::Base::ByteBuffer& byteBuf
        return pDetectList.release();
 
 CATCH:
+       if (pRect)
+       {
+               delete pRect;
+       }
        SetLastResult(r);
        ReleaseFaceEngine();
-       pDetectList->RemoveAll();
+       pDetectList->RemoveAll(true);
        return pDetectList.release();
 }
 
@@ -566,6 +584,7 @@ _FaceDetectorImpl::DetectFacesN(const Tizen::Base::ByteBuffer& grayBuffer, const
        int retValue = 0;
        result r = E_SUCCESS;
        unsigned char* pImageBuffer = null;
+       Tizen::Graphics::Rectangle* pRect = null;
 
        ClearLastResult();
 
@@ -600,7 +619,9 @@ _FaceDetectorImpl::DetectFacesN(const Tizen::Base::ByteBuffer& grayBuffer, const
        {
                for (int i = 0; i < __pFaceEngineInfo->g_iFaceDetectNum; i++)
                {
-                       Tizen::Graphics::Rectangle* pRect =
+                       //The null assingment is to avoid possible memory leak
+                       pRect = null;
+                       pRect =
                                new (std::nothrow) Tizen::Graphics::Rectangle(__pFaceEngineInfo->g_FaceROI[i].x, __pFaceEngineInfo->g_FaceROI[i].y,
                                                                                                                          __pFaceEngineInfo->g_FaceROI[i].width, __pFaceEngineInfo->g_FaceROI[i].height);
 
@@ -615,9 +636,12 @@ _FaceDetectorImpl::DetectFacesN(const Tizen::Base::ByteBuffer& grayBuffer, const
        ReleaseFaceEngine();
        return pDetectList.release();
 CATCH:
-       SysLogException(NID_UIX, r, "XXXX - CATCH _FaceDetectorImpl::DetectFacesN");
+       if (pRect)
+       {
+               delete pRect;
+       }
        SetLastResult(r);
-       pDetectList->RemoveAll();
+       pDetectList->RemoveAll(true);
        return pDetectList.release();
 }
 
@@ -627,7 +651,6 @@ _FaceDetectorImpl::ExtractFaceComponents(const Tizen::Base::ByteBuffer& grayBuff
                                                                                 Tizen::Graphics::Point& eyeLeft, Tizen::Graphics::Rectangle& mouthRect)
 {
        result r = E_SUCCESS;
-       int index = -1;
        int retVal = 0;
        FaceEngineInfo* pFaceEngineInfo = null;
 
index 3db2423..b2f56c9 100644 (file)
@@ -105,14 +105,10 @@ _FaceRecognizerImpl::Construct(void)
        std::unique_ptr< FaceEngineInfo > pFaceEngineInfo(new (std::nothrow) FaceEngineInfo);
        SysTryReturn(NID_UIX, pFaceEngineInfo != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
 
-       __pFaceEngineInfo = pFaceEngineInfo.release();
-
-       //int  retValue = caApp_FaceEngineInit(__pFaceEngineInfo, FD_MODE_ROLo_YAWo, FD_SIZE_COVERAGE_HIGH,__maxFacesImage, _FT_INTERVAL_DEFAULT);
-       //SysTryReturn(NID_UIX, retValue == _FACEENGINE_INIT_SUCCESS, E_FAILURE, E_FAILURE, "[%s] Face Engine Init failed.", GetErrorMessage(E_FAILURE));
-
        std::unique_ptr< _FaceUtil > pFaceUtil(new (std::nothrow) _FaceUtil);
        SysTryReturn(NID_UIX, pFaceUtil != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
 
+       __pFaceEngineInfo = pFaceEngineInfo.release();
        __pFaceUtil = pFaceUtil.release();
 
        return res;
@@ -323,7 +319,6 @@ _FaceRecognizerImpl::ExtractFaceFeaturesFromBufferN(const Tizen::Base::ByteBuffe
        int featureLength = 0;
        unsigned char* pImageBuffer = null;
        ByteBuffer buffer;
-       int isValidFREngine = 0;
 
        std::unique_ptr< FaceRecognitionInfo > pFaceInfo;
 
@@ -373,9 +368,7 @@ _FaceRecognizerImpl::ExtractFaceFeaturesFromBufferN(const Tizen::Base::ByteBuffe
                                   , GetErrorMessage(E_FAILURE));
        }
 
-       isValidFREngine = caApp_FtsExInit(FR_MODE_MPL2, _FACE_ENGINE_BIN_PATH);
-
-       //SysTryCatch(NID_UIX, isValidFREngine == _FACEENGINE_RETURN_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed caApp_FtsExInit", GetErrorMessage(E_FAILURE));
+       caApp_FtsExInit(FR_MODE_MPL2, _FACE_ENGINE_BIN_PATH);
 
        featureLength = caApp_FtsExVecLength();
        SysTryCatch(NID_UIX, featureLength > 0, r = E_FAILURE, E_FAILURE, "[%s] Failed caApp_FtsExInit", GetErrorMessage(E_FAILURE));
@@ -412,7 +405,7 @@ _FaceRecognizerImpl::ExtractFaceFeaturesFromBufferN(const Tizen::Base::ByteBuffe
 CATCH:
        SetLastResult(r);
        caApp_FtsExRelease();
-       pDetectList->RemoveAll();
+       pDetectList->RemoveAll(true);
        return pDetectList.release();
 }
 
@@ -426,7 +419,6 @@ _FaceRecognizerImpl::ExtractFaceFeaturesFromBitmapN(const Tizen::Base::ByteBuffe
        result r = E_SUCCESS;
        unsigned char* pImageBuffer = null;
        int retValue = 0;
-       int isValidFREngine = 0;
        int featureLength = 0;
 
        std::unique_ptr< FaceRecognitionInfo > pFaceInfo;
@@ -474,8 +466,7 @@ _FaceRecognizerImpl::ExtractFaceFeaturesFromBitmapN(const Tizen::Base::ByteBuffe
                                   , GetErrorMessage(E_FAILURE));
        }
 
-       isValidFREngine = caApp_FtsExInit(FR_MODE_MPL2, _FACE_ENGINE_BIN_PATH);
-       //SysTryCatch(NID_UIX, isValidFREngine == _FACEENGINE_RETURN_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed caApp_FtsExInit", GetErrorMessage(E_FAILURE));
+       caApp_FtsExInit(FR_MODE_MPL2, _FACE_ENGINE_BIN_PATH);
 
        featureLength = caApp_FtsExVecLength();
        SysTryCatch(NID_UIX, featureLength > 0, r = E_FAILURE, E_FAILURE, "[%s] Failed caApp_FtsExInit", GetErrorMessage(E_FAILURE));
@@ -514,7 +505,7 @@ CATCH:
        SetLastResult(r);
        caApp_FtsExRelease();
        ReleaseFaceEngine();
-       pDetectList->RemoveAll();
+       pDetectList->RemoveAll(true);
        return pDetectList.release();
 }
 
@@ -525,7 +516,6 @@ _FaceRecognizerImpl::ExtractFaceFeaturesFromBitmapN(const Tizen::Graphics::Bitma
        result r = E_SUCCESS;
        unsigned char* pImageBuffer = null;
        int retValue = 0;
-       int isValidFREngine = 0;
        int featureLength = 0;
        std::unique_ptr< FaceRecognitionInfo > pFaceInfo;
 
@@ -574,8 +564,7 @@ _FaceRecognizerImpl::ExtractFaceFeaturesFromBitmapN(const Tizen::Graphics::Bitma
                                   , GetErrorMessage(E_FAILURE));
        }
 
-       isValidFREngine = caApp_FtsExInit(FR_MODE_MPL2, _FACE_ENGINE_BIN_PATH);
-       //SysTryCatch(NID_UIX, isValidFREngine == _FACEENGINE_RETURN_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed caApp_FtsExInit", GetErrorMessage(E_FAILURE));
+       caApp_FtsExInit(FR_MODE_MPL2, _FACE_ENGINE_BIN_PATH);
 
        featureLength = caApp_FtsExVecLength();
        SysTryCatch(NID_UIX, featureLength > 0, r = E_FAILURE, E_FAILURE, "[%s] Failed caApp_FtsExInit", GetErrorMessage(E_FAILURE));
@@ -608,10 +597,10 @@ _FaceRecognizerImpl::ExtractFaceFeaturesFromBitmapN(const Tizen::Graphics::Bitma
 
                pFaceInfo->SetFacePosition(pRect->x, pRect->y, pRect->width, pRect->height);
 
+               delete pRect;
+
                r = pDetectList->Add(*(pFaceInfo.release()));
                SysTryCatch(NID_UIX, r == E_SUCCESS, r = E_FAILURE, r, "[%s] Failed to add the FaceRecognitionInfo.", GetErrorMessage(E_FAILURE));
-
-               delete pRect;
        }
 
        caApp_FtsExRelease();
@@ -625,7 +614,7 @@ CATCH:
        SetLastResult(r);
        caApp_FtsExRelease();
        ReleaseFaceEngine();
-       pDetectList->RemoveAll();
+       pDetectList->RemoveAll(true);
        return pDetectList.release();
 }
 
@@ -756,7 +745,6 @@ _FaceRecognizerImpl::DetectBlinksFromBitmapN(const Tizen::Base::ByteBuffer& byte
        return pDetectList.release();
 
 CATCH:
-       SysLogException(NID_UIX, E_SUCCESS, "XXXX - CATCH _FaceRecognizerImpl::DetectBlinksFromBitmapN-");
        SetLastResult(r);
        ReleaseFaceEngine();
        pDetectList->RemoveAll();
@@ -876,7 +864,6 @@ _FaceRecognizerImpl::RecognizeExpressionsFromBitmapN(const Tizen::Base::ByteBuff
        return pDetectList.release();
 
 CATCH:
-       SysLogException(NID_UIX, E_SUCCESS, "XXXX - CATCH _FaceRecognizerImpl::RecognizeExpressionsFromBitmapN-");
        ReleaseFaceEngine();
        SetLastResult(r);
        pDetectList->RemoveAll();
@@ -940,11 +927,7 @@ _FaceRecognizerImpl::DetectBlinksFromBufferN(const Tizen::Base::ByteBuffer& byte
                                   , GetErrorMessage(E_FAILURE));
        }
 
-       SysLogException(NID_UIX, E_SUCCESS, "XXXX - REACH 001");
-
        retValue = caApp_RunFaceDetection(pImageBuffer, resolution.width, resolution.height, __pFaceEngineInfo);
-       SysLogException(NID_UIX, E_SUCCESS, "XXXX - REACH 002 __pFaceEngineInfo->g_iFaceDetectNum = %d", __pFaceEngineInfo->g_iFaceDetectNum);
-
        SysTryCatch(NID_UIX, retValue == _FACEENGINE_RETURN_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to create the Buffer."
                           , GetErrorMessage(E_FAILURE));
        for (int i = 0; i < __pFaceEngineInfo->g_iFaceDetectNum; i++)
@@ -1051,23 +1034,19 @@ _FaceRecognizerImpl::RecognizeExpressionsFromBufferN(const Tizen::Base::ByteBuff
        SysTryCatch(NID_UIX, retValue == _FACEENGINE_RETURN_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to create the Buffer."
                           , GetErrorMessage(E_FAILURE));
 
-       //SysLogException(NID_UIX, E_SUCCESS, "XXXX - Entering RecognizeExpressionsFromBufferN  faces= %d",__pFaceEngineInfo->g_iFaceDetectNum);
        for (int i = 0; i < __pFaceEngineInfo->g_iFaceDetectNum; i++)
        {
                retValue = caApp_RunEyeDetection(pImageBuffer, resolution.width, resolution.height, __pFaceEngineInfo, i);
                SysTryCatch(NID_UIX, retValue == _FACEENGINE_RETURN_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to create the Buffer."
                                   , GetErrorMessage(E_FAILURE));
-               SysLogException(NID_UIX, E_SUCCESS, "XXXX - REACH 003");
                retValue = caApp_RunMouthDetection(pImageBuffer, resolution.width, resolution.height, __pFaceEngineInfo, i);
                SysTryCatch(NID_UIX, retValue == _FACEENGINE_RETURN_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to create the Buffer."
                                   , GetErrorMessage(E_FAILURE));
-               SysLogException(NID_UIX, E_SUCCESS, "XXXX - REACH 004");
 
                retValue = caApp_RunFERDetection(pImageBuffer, resolution.width, resolution.height, __pFaceEngineInfo, true);
                SysTryCatch(NID_UIX, retValue == _FACEENGINE_RETURN_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to create the Buffer."
                                   , GetErrorMessage(E_FAILURE));
 
-               SysLogException(NID_UIX, E_SUCCESS, "XXXX - REACH 005");
                FacialExpression expression = FACIAL_EXPRESSION_NONE;
 
                switch (*(__pFaceEngineInfo->g_Expression[i]))
@@ -1103,7 +1082,6 @@ _FaceRecognizerImpl::RecognizeExpressionsFromBufferN(const Tizen::Base::ByteBuff
        return pDetectList.release();
 
 CATCH:
-       //SysLogException(NID_UIX, r, "XXXX -CATCH _FaceRecognizerImpl::RecognizeExpressionsFromBufferN-");
        pDetectList->RemoveAll();
        SetLastResult(r);
        return pDetectList.release();
@@ -1118,7 +1096,6 @@ _FaceRecognizerImpl::ExtractFeatureN(const Tizen::Base::ByteBuffer& grayBuffer,
        result r = E_SUCCESS;
        int featureLength = 0;
        int retValue = 0;
-       int isValidFREngine = 0;
        long* pFaceData = null;
        FaceEngineInfo* __pFaceEngineInfoTemp = null;
 
@@ -1126,8 +1103,10 @@ _FaceRecognizerImpl::ExtractFeatureN(const Tizen::Base::ByteBuffer& grayBuffer,
        SysTryReturn(NID_UIX, pBuffer != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
 
        std::unique_ptr< FaceEngineInfo > pFaceEngineInfo(new (std::nothrow) FaceEngineInfo);
+       SysTryReturn(NID_UIX, pFaceEngineInfo != null, null, E_OUT_OF_MEMORY, "[%s] Failed to create the Buffer.", GetErrorMessage(E_OUT_OF_MEMORY));
 
-       __pFaceEngineInfoTemp = pFaceEngineInfo.release();
+       __pFaceEngineInfoTemp = pFaceEngineInfo.get();
+       SysTryReturn(NID_UIX, __pFaceEngineInfoTemp != null, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.",   GetErrorMessage(E_OUT_OF_MEMORY));
 
        retValue = caApp_FaceEngineInit(__pFaceEngineInfoTemp, FD_MODE_ROLx_YAWx, FD_SIZE_COVERAGE_HIGH, __maxFacesImage, 20);
        SysTryCatch(NID_UIX, retValue == _FACEENGINE_INIT_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to create the Buffer."
@@ -1142,8 +1121,7 @@ _FaceRecognizerImpl::ExtractFeatureN(const Tizen::Base::ByteBuffer& grayBuffer,
        __pFaceEngineInfoTemp->g_EyeROI[0].rx = eyeRight.x;
        __pFaceEngineInfoTemp->g_EyeROI[0].ry = eyeRight.y;
 
-       isValidFREngine = caApp_FtsExInit(FR_MODE_MPL2, _FACE_ENGINE_BIN_PATH);
-       //SysTryCatch(NID_UIX, isValidFREngine == _FACEENGINE_RETURN_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed caApp_FtsExInit", GetErrorMessage(E_FAILURE));
+       caApp_FtsExInit(FR_MODE_MPL2, _FACE_ENGINE_BIN_PATH);
 
        featureLength = caApp_FtsExVecLength();
        SysTryCatch(NID_UIX, featureLength > 0, r = E_FAILURE, E_FAILURE, "[%s] Failed caApp_FtsExInit", GetErrorMessage(E_FAILURE));
@@ -1163,8 +1141,8 @@ _FaceRecognizerImpl::ExtractFeatureN(const Tizen::Base::ByteBuffer& grayBuffer,
        SysTryCatch(NID_UIX, retValue == _FACEENGINE_INIT_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to delete FaceEngine.", GetErrorMessage(E_FAILURE));
 
        return pBuffer.release();
+
 CATCH:
-       SysLogException(NID_UIX, E_SUCCESS, "XXXX - CATCH _FaceRecognizerImpl::ExtractFeatureN-");
        caApp_FtsExRelease();
        caApp_FaceEngineRelease(__pFaceEngineInfoTemp);
        SetLastResult(r);
@@ -1185,9 +1163,13 @@ _FaceRecognizerImpl::DetectEyeState(const Tizen::Base::ByteBuffer& grayBuffer, c
        //Way to get the index is to loop for all rects and get the index..
 
        std::unique_ptr< FaceEngineInfo > pFaceEngineInfo(new (std::nothrow) FaceEngineInfo);
-       __pFaceEngineInfoTemp = pFaceEngineInfo.release();
+       SysTryReturn(NID_UIX, pFaceEngineInfo != null, eyeState, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+       __pFaceEngineInfoTemp = pFaceEngineInfo.get();
+       SysTryReturn(NID_UIX, __pFaceEngineInfoTemp != null, eyeState, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.",       GetErrorMessage(E_OUT_OF_MEMORY));      
 
-       caApp_FaceEngineInit(__pFaceEngineInfoTemp, FD_MODE_ROLx_YAWx, FD_SIZE_COVERAGE_HIGH, __maxFacesImage, 20);
+       retVal = caApp_FaceEngineInit(__pFaceEngineInfoTemp, FD_MODE_ROLx_YAWx, FD_SIZE_COVERAGE_HIGH,__maxFacesImage, 20);
+       SysTryCatch(NID_UIX, retVal == _FACEENGINE_INIT_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to create the Buffer."
+                               , GetErrorMessage(E_FAILURE));
 
        __pFaceEngineInfoTemp->g_FaceROI[0].x = faceRect.x;
        __pFaceEngineInfoTemp->g_FaceROI[0].y = faceRect.y;
@@ -1220,8 +1202,8 @@ _FaceRecognizerImpl::DetectEyeState(const Tizen::Base::ByteBuffer& grayBuffer, c
        SysTryCatch(NID_UIX, retVal == _FACEENGINE_INIT_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to delete FaceEngine.", GetErrorMessage(E_FAILURE));
 
        return eyeState;
+
 CATCH:
-       SysLogException(NID_UIX, E_SUCCESS, "XXXX - CATCH _FaceRecognizerImpl::DetectEyeState");
        caApp_FaceEngineRelease(__pFaceEngineInfoTemp);
        SetLastResult(r);
        return EYE_STATE_NONE;
@@ -1238,10 +1220,14 @@ _FaceRecognizerImpl::RecognizeExpression(const Tizen::Base::ByteBuffer& grayBuff
        FaceEngineInfo* __pFaceEngineInfoTemp = null;
 
        std::unique_ptr< FaceEngineInfo > pFaceEngineInfo(new (std::nothrow) FaceEngineInfo);
+       SysTryReturn(NID_UIX, pFaceEngineInfo != null, expression, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.",   GetErrorMessage(E_OUT_OF_MEMORY));
 
-       __pFaceEngineInfoTemp = pFaceEngineInfo.release();
+       __pFaceEngineInfoTemp = pFaceEngineInfo.get();
+       SysTryReturn(NID_UIX, __pFaceEngineInfoTemp != null, expression, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.",     GetErrorMessage(E_OUT_OF_MEMORY));      
 
-       caApp_FaceEngineInit(__pFaceEngineInfoTemp, FD_MODE_ROLx_YAWx, FD_SIZE_COVERAGE_HIGH, __maxFacesImage, 20);
+       retVal = caApp_FaceEngineInit(__pFaceEngineInfoTemp, FD_MODE_ROLx_YAWx, FD_SIZE_COVERAGE_HIGH,__maxFacesImage, 20);
+       SysTryCatch(NID_UIX, retVal == _FACEENGINE_INIT_SUCCESS, r = E_FAILURE, E_FAILURE, "[%s] Failed to create the Buffer."
+                               , GetErrorMessage(E_FAILURE));
 
        __pFaceEngineInfoTemp->g_FaceROI[0].x = faceRect.x;
        __pFaceEngineInfoTemp->g_FaceROI[0].y = faceRect.y;
@@ -1288,7 +1274,6 @@ _FaceRecognizerImpl::RecognizeExpression(const Tizen::Base::ByteBuffer& grayBuff
 
        return expression;
 CATCH:
-       SysLogException(NID_UIX, E_SUCCESS, "XXXX -CATCH  _FaceRecognizerImpl::RecognizeExpression");
        caApp_FaceEngineRelease(__pFaceEngineInfoTemp);
        SetLastResult(r);
        return FACIAL_EXPRESSION_NONE;