From b394a46cef4bb3f3490ad74287549ea9b4500f80 Mon Sep 17 00:00:00 2001 From: Jinny You Date: Mon, 18 Nov 2024 18:49:59 +0900 Subject: [PATCH] lottie/slot: Fix incorrect image slot schema Issue: #2964 --- src/loaders/lottie/tvgLottieParser.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/loaders/lottie/tvgLottieParser.cpp b/src/loaders/lottie/tvgLottieParser.cpp index e390ee88..25482293 100644 --- a/src/loaders/lottie/tvgLottieParser.cpp +++ b/src/loaders/lottie/tvgLottieParser.cpp @@ -957,6 +957,8 @@ void LottieParser::parseImage(LottieImage* image, const char* data, const char* LottieObject* LottieParser::parseAsset() { + enterObject(); + LottieObject* obj = nullptr; unsigned long id = 0; @@ -1018,7 +1020,6 @@ void LottieParser::parseAssets() { enterArray(); while (nextArrayValue()) { - enterObject(); auto asset = parseAsset(); if (asset) comp->assets.push(asset); else TVGERR("LOTTIE", "Invalid Asset!"); @@ -1477,7 +1478,10 @@ bool LottieParser::apply(LottieSlot* slot, bool byDefault) break; } case LottieProperty::Type::Image: { - obj = parseAsset(); + while (auto key = nextObjectKey()) { + if (KEY_AS("p")) obj = parseAsset(); + else skip(key); + } context.parent = obj; break; }