diff --git a/src/loaders/lottie/tvgLottieParser.cpp b/src/loaders/lottie/tvgLottieParser.cpp index d7931015..10cba904 100644 --- a/src/loaders/lottie/tvgLottieParser.cpp +++ b/src/loaders/lottie/tvgLottieParser.cpp @@ -932,8 +932,19 @@ void LottieParser::parseShapes(LottieLayer* layer) { enterArray(); while (nextArrayValue()) { - parseObject(layer); - } + enterObject(); + while (auto key = nextObjectKey()) { + if (!strcmp(key, "it")) { + enterArray(); + while (nextArrayValue()) parseObject(layer); + } else if (!strcmp(key, "ty")) { + if (auto child = parseObject()) { + if (child->hidden) delete(child); + else layer->children.push(child); + } + } else skip(key); + } + } }