Fixed prevent error.
authorKeuckdo Bang <keuckdo.bang@samsung.net>
Thu, 4 Apr 2013 00:29:36 +0000 (09:29 +0900)
committerKeuckdo Bang <keuckdo.bang@samsung.net>
Thu, 4 Apr 2013 00:29:36 +0000 (09:29 +0900)
Change-Id: I6a2394855a82697572b088ca554f6409bd0abe7b

src/ui/controls/FUiCtrl_IndicatorManager.cpp

index 1f6a6ed..2fbf8a8 100644 (file)
@@ -294,17 +294,22 @@ IndicatorComponent*
 _IndicatorManager::MakeIndicatorComponentArrayN(_Window* pWindow)
 {
        result r = E_SUCCESS;
+       Eina_Bool result = EINA_TRUE;
+       Dimension portraitsize(0,0);
+       Dimension landscapesize(0,0);
+
+       _VisualElement* pLandscapeVisualElement = null;
+       _VisualElement* pPortraitVisualElement = null;
+
        IndicatorComponent* pIndicatorComponentArray = new IndicatorComponent[NUMBER_OF_OBJECT];
 
        _RootVisualElement* pRootVisualElement = pWindow->GetRootVisualElement();
        _EflLayer* pEflLayer = static_cast<_EflLayer*>(pRootVisualElement->GetNativeLayer());
        Ecore_Evas* pEcore_Evas = pEflLayer->GetEcoreEvas();
-       SysTryReturn(NID_UI, pEcore_Evas, null, E_SYSTEM, "[E_SYSTEM] A system error occurred.");
-
-       Eina_Bool result = EINA_TRUE;
+       SysTryCatch(NID_UI_CTRL, pEcore_Evas, , E_SYSTEM, "[E_SYSTEM] A system error occurred.");
 
-       Dimension portraitsize = GetIndicatorSize(_INDICATOR_ORIENTATION_PORTRAIT);
-       Dimension landscapesize = GetIndicatorSize(_INDICATOR_ORIENTATION_LANDSCAPE);
+       portraitsize = GetIndicatorSize(_INDICATOR_ORIENTATION_PORTRAIT);
+       landscapesize = GetIndicatorSize(_INDICATOR_ORIENTATION_LANDSCAPE);
 
        //Get indicator Image Object
        for(int i = 0 ; i < NUMBER_OF_OBJECT ; i++)
@@ -326,19 +331,19 @@ _IndicatorManager::MakeIndicatorComponentArrayN(_Window* pWindow)
                VisualElementSurface* pPortraitSurface = _VisualElementSurfaceImpl::CreateSurfaceUsingExistingObjectN(*pWindow->GetDisplayContext(), reinterpret_cast<Handle>(pPortraitEvasObject), portraitsize);
                VisualElementSurface* pLandScapeSurface = _VisualElementSurfaceImpl::CreateSurfaceUsingExistingObjectN(*pWindow->GetDisplayContext(), reinterpret_cast<Handle>(pLandscapeEvasObject), landscapesize);
 
-               _VisualElement* pPortraitVisualElement = new (std::nothrow) _VisualElement;
-               SysTryReturn(NID_UI_CTRL, pPortraitVisualElement, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
+               pPortraitVisualElement = new (std::nothrow) _VisualElement;
+               SysTryCatch(NID_UI_CTRL, pPortraitVisualElement, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
                r = pPortraitVisualElement->Construct();
-               SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), null, E_SYSTEM, "[E_SYSTEM] System error occurred.");
+               SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] System error occurred.");
                pPortraitVisualElement->SetImplicitAnimationEnabled(false);
                pPortraitVisualElement->SetShowState(true);
                pPortraitVisualElement->SetSurface(pPortraitSurface);
                pPortraitVisualElement->SetBounds(FloatRectangle(0.0f, 0.0f, portraitsize.width, portraitsize.height));
 
-               _VisualElement* pLandscapeVisualElement = new (std::nothrow) _VisualElement;
-               SysTryReturn(NID_UI_CTRL, pLandscapeVisualElement, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
+               pLandscapeVisualElement = new (std::nothrow) _VisualElement;
+               SysTryCatch(NID_UI_CTRL, pLandscapeVisualElement, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
                r = pLandscapeVisualElement->Construct();
-               SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), null, E_SYSTEM, "[E_SYSTEM] System error occurred.");
+               SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] System error occurred.");
                pLandscapeVisualElement->SetImplicitAnimationEnabled(false);
                pLandscapeVisualElement->SetShowState(true);
                pLandscapeVisualElement->SetSurface(pLandScapeSurface);
@@ -359,6 +364,14 @@ _IndicatorManager::MakeIndicatorComponentArrayN(_Window* pWindow)
 
 CATCH:
        delete [] pIndicatorComponentArray;
+       if (pPortraitVisualElement)
+       {
+               pPortraitVisualElement->Destroy();
+       }
+       if (pLandscapeVisualElement)
+       {
+               pLandscapeVisualElement->Destroy();
+       }
        return null;
 }