From c12b9d73f56a344da92d77642f493211fe64c80c Mon Sep 17 00:00:00 2001 From: Arun S Devarajan Date: Wed, 27 Mar 2013 19:23:32 +0530 Subject: [PATCH] Fix for memory leaks in Lists Signed-off-by: Arun S Devarajan Change-Id: I8d1e14d8eb924b724de43e0b2ed2664dae91051e --- src/ui/controls/FUiCtrl_CustomListItemImpl.cpp | 5 +++++ src/ui/controls/FUiCtrl_ExpandableListImpl.cpp | 11 +++++++---- src/ui/resource/FUi_ResourceListConfig.cpp | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ui/controls/FUiCtrl_CustomListItemImpl.cpp b/src/ui/controls/FUiCtrl_CustomListItemImpl.cpp index e25bd4c..3aa1815 100644 --- a/src/ui/controls/FUiCtrl_CustomListItemImpl.cpp +++ b/src/ui/controls/FUiCtrl_CustomListItemImpl.cpp @@ -488,6 +488,11 @@ _CustomListItemImpl::SetHighlightedItemBackgroundBitmap(const Bitmap& bitmap) void _CustomListItemImpl::SetBackgroundBitmap(const Bitmap& bitmap, TableViewItemDrawingStatus status) { + if (__pBitmaps[status]) + { + delete __pBitmaps[status]; + } + __pBitmaps[status] = _BitmapImpl::CloneN(bitmap); if (__pTableViewItemData) diff --git a/src/ui/controls/FUiCtrl_ExpandableListImpl.cpp b/src/ui/controls/FUiCtrl_ExpandableListImpl.cpp index 125acf2..538eb50 100755 --- a/src/ui/controls/FUiCtrl_ExpandableListImpl.cpp +++ b/src/ui/controls/FUiCtrl_ExpandableListImpl.cpp @@ -43,8 +43,6 @@ namespace Tizen { namespace Ui { namespace Controls extern const int INVALID_INDEX; -static const float _EXPANDABLE_ARROW_X_POSITION = 5.0f; -static const float _EXPANDABLE_ARROW_Y_POSITION = 20.0f; static const char* ARROW_ELEMENT_NAME = "Arrow"; _ExpandableListItemDataProvider::_ExpandableListItemDataProvider(_ExpandableListImpl* pList) @@ -499,7 +497,6 @@ _ExpandableListImpl::CreateArrowIcon(int groupIndex) { int size = __pOpenedImage->GetWidth(); result r = E_SUCCESS; - bool isEnabled = true; isEnabled = IsItemEnabled(groupIndex); @@ -515,7 +512,13 @@ _ExpandableListImpl::CreateArrowIcon(int groupIndex) _ExpandableListArrowBitmap* pArrowIcon = new (std::nothrow) _ExpandableListArrowBitmap(); SysTryReturn(NID_UI_CTRL, pArrowIcon, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed."); - r = pArrowIcon->Construct(FloatRectangle((GetCore().GetBoundsF().width - (size + _EXPANDABLE_ARROW_X_POSITION)), _EXPANDABLE_ARROW_Y_POSITION, size, size), GROUP_STYLE_NONE); + float xPosition = 0.0f; + float yPosition = 0.0f; + + GET_SHAPE_CONFIG(LIST::EXPANDABLE_ARROW_X_POSITION, GetCore().GetOrientation(), xPosition); + yPosition = (pTableViewGroupItemData->GetHeight() - __pClosedImage->GetHeight())/2.0f; + + r = pArrowIcon->Construct(FloatRectangle((GetCore().GetBoundsF().width - (size + xPosition)), yPosition, size, size), GROUP_STYLE_NONE); SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); pArrowIcon->SetName(ARROW_ELEMENT_NAME); diff --git a/src/ui/resource/FUi_ResourceListConfig.cpp b/src/ui/resource/FUi_ResourceListConfig.cpp index 56c9763..c2076ed 100644 --- a/src/ui/resource/FUi_ResourceListConfig.cpp +++ b/src/ui/resource/FUi_ResourceListConfig.cpp @@ -61,6 +61,7 @@ START_UI_CONFIG(LIST); ADD_SHAPE_CONFIG(CHECK_ELEMENT_DIVIDER_WIDTH, 2); ADD_SHAPE_CONFIG(CHECK_ELEMENT_DIVIDER_MARGIN, 10); ADD_SHAPE_CONFIG(LIST_DEFAULT_ITEM_HEIGHT, 100); + ADD_SHAPE_CONFIG(EXPANDABLE_ARROW_X_POSITION, 5); END_UI_CONFIG_MODE(720x1280); } END_UI_CONFIG(LIST); -- 2.7.4