Fixed crash in SplitPanel
authorSyed Khaja Moinuddin <moinuddin.s@samsung.com>
Fri, 10 May 2013 10:30:20 +0000 (19:30 +0900)
committerSyed Khaja Moinuddin <moinuddin.s@samsung.com>
Fri, 10 May 2013 11:17:55 +0000 (20:17 +0900)
Signed-off-by: Syed Khaja Moinuddin <moinuddin.s@samsung.com>
Change-Id: I22f376cf25e8036faec2ad87c45bd12f66be381d
Signed-off-by: Syed Khaja Moinuddin <moinuddin.s@samsung.com>
src/ui/controls/FUiCtrlSplitPanel.cpp
src/ui/controls/FUiCtrl_SplitPanel.cpp

index 0328ef9..6397970 100644 (file)
@@ -97,7 +97,15 @@ SplitPanel::SetPane(Control* pControl, SplitPanelPaneOrder paneOrder)
        _SplitPanelImpl* pSplitPanelImpl = _SplitPanelImpl::GetInstance(*this);
        SysAssertf(pSplitPanelImpl != null, "Not yet constructed. Construct() should be called before use.");
 
-       return pSplitPanelImpl->SetPane(const_cast <_ControlImpl*>(_ControlImpl::GetInstance(*pControl)), paneOrder);
+       if (pControl ==  null)
+       {
+               return pSplitPanelImpl->SetPane(null, paneOrder);
+       }
+
+       _ControlImpl* pImpl = _ControlImpl::GetInstance(*pControl);
+       SysAssertf(pImpl != null, "Parameter pControl is not yet constructed. Construct() should be called before use.");
+
+       return pSplitPanelImpl->SetPane(pImpl, paneOrder);
 }
 
 Control*
index 0b381bc..a1e8503 100644 (file)
@@ -394,15 +394,21 @@ _SplitPanel::SetPane(_Control* pControl, SplitPanelPaneOrder paneOrder)
 
        if (paneOrder == SPLIT_PANEL_PANE_ORDER_FIRST)
        {
-               r = __pFirstPaneParent->AttachChild(*pControl);
-               SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+               if (pControl != null)
+               {
+                       r = __pFirstPaneParent->AttachChild(*pControl);
+                       SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+               }
 
                __pFirstPane = pControl;
        }
        else
        {
-               r = __pSecondPaneParent->AttachChild(*pControl);
-               SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+               if (pControl != null)
+               {
+                       r = __pSecondPaneParent->AttachChild(*pControl);
+                       SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+               }
 
                __pSecondPane = pControl;
        }