diff --git a/src/loaders/lottie/tvgLottieModel.cpp b/src/loaders/lottie/tvgLottieModel.cpp index 2ba1499d..473f04dc 100644 --- a/src/loaders/lottie/tvgLottieModel.cpp +++ b/src/loaders/lottie/tvgLottieModel.cpp @@ -207,7 +207,7 @@ float LottieLayer::remap(float frameNo) LottieComposition::~LottieComposition() { - if (!initiated) delete(root->scene); + if (!initiated && root) delete(root->scene); delete(root); free(version); @@ -233,4 +233,4 @@ LottieComposition::~LottieComposition() for (auto s = slots.begin(); s < slots.end(); ++s) { delete(*s); } -} \ No newline at end of file +} diff --git a/src/loaders/lottie/tvgLottieParser.cpp b/src/loaders/lottie/tvgLottieParser.cpp index b15c23c7..fcaa7599 100644 --- a/src/loaders/lottie/tvgLottieParser.cpp +++ b/src/loaders/lottie/tvgLottieParser.cpp @@ -1316,7 +1316,10 @@ bool LottieParser::parse() else skip(key); } - if (Invalid() || !comp->root) return false; + if (Invalid() || !comp->root) { + delete(comp); + return false; + } comp->root->inFrame = comp->startFrame; comp->root->outFrame = comp->endFrame; @@ -1324,4 +1327,4 @@ bool LottieParser::parse() postProcess(glyphes); return true; -} \ No newline at end of file +}