From 1bcbac71ab1734204aae3fe332a2774943da6d71 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Mon, 11 Sep 2023 21:55:36 +0900 Subject: [PATCH] loader/lottie: fix a invalid matte source access. parser ignored a matte source has no target. this fixes the corner case. --- src/loaders/lottie/tvgLottieParser.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/loaders/lottie/tvgLottieParser.cpp b/src/loaders/lottie/tvgLottieParser.cpp index ef62adf6..2bc6f723 100644 --- a/src/loaders/lottie/tvgLottieParser.cpp +++ b/src/loaders/lottie/tvgLottieParser.cpp @@ -1074,8 +1074,13 @@ LottieLayer* LottieParser::parseLayers() root->children.push(layer); } else { //matte source must be located in the right previous. - layer->matte.target = static_cast(root->children.last()); - layer->statical &= layer->matte.target->statical; + auto matte = static_cast(root->children.last()); + if (matte->matteSrc) { + layer->matte.target = matte; + layer->statical &= layer->matte.target->statical; + } else { + TVGLOG("LOTTIE", "Matte Source(%s) is not designated?", matte->name); + } root->children.last() = layer; } root->statical &= layer->statical;