From: Heeyong Song Date: Thu, 14 Jun 2018 08:13:14 +0000 (+0900) Subject: Fix layout group crash X-Git-Tag: dali_1.3.29~13 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=1c3258c8dbc37546ff31137462758a8b3323bdff Fix layout group crash Change-Id: I6c6574794b2a8eab30fb9910426dca665f94b9a1 --- diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp index 6abc0c7..fbc717c 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp @@ -81,6 +81,19 @@ int UtcDaliLayouting_HboxLayout01(void) DALI_TEST_EQUALS( controls[2].GetProperty( Actor::Property::SIZE ), Vector3( 80.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); DALI_TEST_EQUALS( controls[3].GetProperty( Actor::Property::SIZE ), Vector3( 100.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + // Change a layout + auto newHBoxLayout = HboxLayout::New(); + newHBoxLayout.SetCellPadding( LayoutSize( 10, 0 ) ); + DevelControl::SetLayout( hbox, newHBoxLayout ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 380.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::POSITION ), Vector3( 50.0f, 380.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[2].GetProperty( Actor::Property::POSITION ), Vector3( 120.0f, 380.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[3].GetProperty( Actor::Property::POSITION ), Vector3( 210.0f, 380.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + END_TEST; } diff --git a/dali-toolkit/devel-api/layouting/layout-group-impl.cpp b/dali-toolkit/devel-api/layouting/layout-group-impl.cpp index 10bfe2d..d9ff6ff 100644 --- a/dali-toolkit/devel-api/layouting/layout-group-impl.cpp +++ b/dali-toolkit/devel-api/layouting/layout-group-impl.cpp @@ -122,7 +122,7 @@ void LayoutGroup::Remove( LayoutItem& child ) void LayoutGroup::RemoveAll() { - for( auto iter = mImpl->mChildren.begin() ; iter != mImpl->mChildren.end() ; ++iter ) + for( auto iter = mImpl->mChildren.begin() ; iter != mImpl->mChildren.end() ; ) { OnChildRemove( *iter->child.Get() ); iter = mImpl->mChildren.erase(iter);