From 5895944d4c6f90d6f3e6a1c8e0bd2eec51db9f54 Mon Sep 17 00:00:00 2001 From: subhransu mohanty Date: Mon, 20 Aug 2018 10:18:33 +0900 Subject: [PATCH] lottie/player: refactor to use std::find_if instead of unorder_map. Change-Id: Ic146357db1312aa0ff122fa6859a64098e350740 --- src/lottie/lottieitem.cpp | 14 +++++--------- src/lottie/lottieitem.h | 1 - 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/lottie/lottieitem.cpp b/src/lottie/lottieitem.cpp index 5896543..fd044fd 100644 --- a/src/lottie/lottieitem.cpp +++ b/src/lottie/lottieitem.cpp @@ -1,5 +1,6 @@ #include "lottieitem.h" #include +#include #include "vbitmap.h" #include "vdasher.h" #include "vpainter.h" @@ -309,10 +310,7 @@ LOTCompLayerItem::LOTCompLayerItem(LOTLayerData *layerModel) LOTLayerData *layerModel = dynamic_cast(i.get()); if (layerModel) { LOTLayerItem *layerItem = LOTCompItem::createLayerItem(layerModel); - if (layerItem) { - mLayers.push_back(layerItem); - mLayerMap[layerItem->id()] = layerItem; - } + if (layerItem) mLayers.push_back(layerItem); } } @@ -320,11 +318,9 @@ LOTCompLayerItem::LOTCompLayerItem(LOTLayerData *layerModel) for (auto &i : mLayers) { int id = i->parentId(); if (id >= 0) { - auto search = mLayerMap.find(id); - if (search != mLayerMap.end()) { - LOTLayerItem *parentLayer = search->second; - i->setParentLayer(parentLayer); - } + auto search = std::find_if(mLayers.begin(), mLayers.end(), + [id](const auto& val){ return val->id() == id;}); + if (search != mLayers.end()) i->setParentLayer(*search); } i->setPrecompLayer(this); } diff --git a/src/lottie/lottieitem.h b/src/lottie/lottieitem.h index c3d5066..c9e01a7 100644 --- a/src/lottie/lottieitem.h +++ b/src/lottie/lottieitem.h @@ -104,7 +104,6 @@ protected: void updateContent() final; private: std::vector mLayers; - std::unordered_map mLayerMap; int mLastFrame; }; -- 2.34.1