Use OrderedSet so remove useless iteration for some singletone 76/285976/30
authorEunki, Hong <eunkiki.hong@samsung.com>
Fri, 23 Dec 2022 08:25:24 +0000 (17:25 +0900)
committerEunki Hong <eunkiki.hong@samsung.com>
Fri, 24 Feb 2023 04:54:55 +0000 (04:54 +0000)
commitc0a39d7ee2d561ea002e962e3434f9a460961a9d
tree687ffc06e7b11698f4ca4cc3a894b58cbed4a464
parentd87446f7d834f39b058b1762fdfcc9e630b1fc64
Use OrderedSet so remove useless iteration for some singletone

There was some unneccesary iteration
s.t. render-manager / animation-playlist
/ property-notification-manager / relayout-controller
hold the same object's, and remove it.

We don't need to check "Whole" objects what we hold now. So we make them use
hashed set data structure, so we can find & erase the object without iterate.

Note : OrderedSet is slow when we iterate. So, we don't make
update-manager items as OwnerSet because they iterate whole things every frame.

TODO : There was some case that duplicated called of EraseObject.
We might need to remove them.

Change-Id: I703edb0c7e1f7e01c434a3020edffeab63a861f2
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
15 files changed:
automated-tests/src/dali-internal/CMakeLists.txt
automated-tests/src/dali-internal/utc-Dali-Internal-OrderedSet.cpp [new file with mode: 0644]
dali/internal/common/ordered-set.h [new file with mode: 0644]
dali/internal/event/animation/animation-playlist.cpp
dali/internal/event/animation/animation-playlist.h
dali/internal/event/common/property-notification-impl.cpp
dali/internal/event/common/property-notification-manager.cpp
dali/internal/event/common/property-notification-manager.h
dali/internal/event/size-negotiation/memory-pool-relayout-container.cpp
dali/internal/event/size-negotiation/memory-pool-relayout-container.h
dali/internal/event/size-negotiation/relayout-controller-impl.cpp
dali/internal/event/size-negotiation/relayout-controller-impl.h
dali/internal/render/common/render-manager.cpp
dali/internal/update/common/scene-graph-property-notification.h
dali/internal/update/manager/update-manager.cpp