From: subhransu mohanty Date: Thu, 26 Sep 2019 01:17:19 +0000 (+0900) Subject: lottie/optimization: keep a pathmesure object in trim item to avoid memory allocation X-Git-Tag: submit/tizen/20190926.223052^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b1098bfb4bb147c98c4306b15a07e0a68efd021f;p=platform%2Fcore%2Fuifw%2Flottie-player.git lottie/optimization: keep a pathmesure object in trim item to avoid memory allocation --- diff --git a/src/lottie/lottieitem.cpp b/src/lottie/lottieitem.cpp index 89241d9..cdb1573 100644 --- a/src/lottie/lottieitem.cpp +++ b/src/lottie/lottieitem.cpp @@ -1278,10 +1278,8 @@ void LOTTrimItem::update() if (mData->type() == LOTTrimData::TrimType::Simultaneously) { for (auto &i : mPathItems) { - VPathMesure pm; - pm.setStart(mCache.mSegment.start); - pm.setEnd(mCache.mSegment.end); - i->updatePath(pm.trim(i->localPath())); + mPathMesure.setRange(mCache.mSegment.start, mCache.mSegment.end); + i->updatePath(mPathMesure.trim(i->localPath())); } } else { // LOTTrimData::TrimType::Individually float totalLength = 0.0; @@ -1315,11 +1313,8 @@ void LOTTrimItem::update() local_start /= len; float local_end = curLen + len < end ? len : end - curLen; local_end /= len; - VPathMesure pm; - pm.setStart(local_start); - pm.setEnd(local_end); - VPath p = pm.trim(i->localPath()); - i->updatePath(p); + mPathMesure.setRange(local_start, local_end); + i->updatePath(mPathMesure.trim(i->localPath())); curLen += len; } } diff --git a/src/lottie/lottieitem.h b/src/lottie/lottieitem.h index 53fee5c..b297672 100644 --- a/src/lottie/lottieitem.h +++ b/src/lottie/lottieitem.h @@ -509,6 +509,7 @@ private: Cache mCache; std::vector mPathItems; LOTTrimData *mData; + VPathMesure mPathMesure; bool mDirty{true}; };