Ref Count implementation at Impl layer for ContextItem
authorSreedeep Moulik <sreedeep.m@samsung.com>
Thu, 11 Jul 2013 08:40:30 +0000 (14:10 +0530)
committerSreedeep Moulik <sreedeep.m@samsung.com>
Thu, 11 Jul 2013 08:40:30 +0000 (14:10 +0530)
Change-Id: Iffab33fab0878a2c2e9615a6780adfca267b717d
Signed-off-by: Sreedeep Moulik <sreedeep.m@samsung.com>
src/ui/controls/FUiCtrl_ListItemBaseImpl.cpp

index 9917177..17b8797 100644 (file)
@@ -70,7 +70,13 @@ _ListItemBaseImpl::~_ListItemBaseImpl(void)
 {
        if (__pListViewItem != null)
        {
+               _TableViewItem* pContextItem = __pListViewItem->GetContextItem();
                __pListViewItem->Release();
+
+               if (pContextItem)
+               {
+                       pContextItem->Release();
+               }
        }
 
        delete __pEvent;
@@ -235,6 +241,11 @@ _ListItemBaseImpl::GetBackgroundColor(ListItemDrawingStatus status) const
 result
 _ListItemBaseImpl::SetContextItem(const _ListContextItemImpl* pItem)
 {
+       if (__pListViewItem->GetContextItem())
+       {
+               __pListViewItem->GetContextItem()->Release();
+       }
+
        if (pItem == null)
        {
                __pListViewItem->SetContextItem(null);
@@ -246,6 +257,9 @@ _ListItemBaseImpl::SetContextItem(const _ListContextItemImpl* pItem)
        if (pContextItem != null)
        {
                __pListViewItem->SetItemWidth(__itemSize.width);
+
+               pContextItem->AddRef();
+
                __pListViewItem->SetContextItem(pContextItem);
                __pListViewItem->SetContextItemEventListener(*this);