diff --git a/src/loaders/lottie/tvgLottieExpressions.cpp b/src/loaders/lottie/tvgLottieExpressions.cpp index afb04ba1..81dc2d29 100644 --- a/src/loaders/lottie/tvgLottieExpressions.cpp +++ b/src/loaders/lottie/tvgLottieExpressions.cpp @@ -1266,8 +1266,10 @@ static void _buildMath(jerry_value_t context) } -void LottieExpressions::buildGlobal(LottieExpression* exp) +void LottieExpressions::buildGlobal(float frameNo, LottieExpression* exp) { + jerry_object_set_native_ptr(comp, &freeCb, _expcontent(exp, frameNo, exp->layer)); + auto index = jerry_number(exp->layer->ix); jerry_object_set_sz(global, EXP_INDEX, index); jerry_value_free(index); @@ -1382,7 +1384,7 @@ jerry_value_t LottieExpressions::evaluate(float frameNo, LottieExpression* exp) { if (exp->disabled && exp->writables.empty()) return jerry_undefined(); - buildGlobal(exp); + buildGlobal(frameNo, exp); //main composition buildComp(exp->comp, frameNo, exp); diff --git a/src/loaders/lottie/tvgLottieExpressions.h b/src/loaders/lottie/tvgLottieExpressions.h index ea4ee7b5..e701ba25 100644 --- a/src/loaders/lottie/tvgLottieExpressions.h +++ b/src/loaders/lottie/tvgLottieExpressions.h @@ -140,7 +140,7 @@ private: void buildComp(LottieComposition* comp, float frameNo, LottieExpression* exp); void buildComp(jerry_value_t context, float frameNo, LottieLayer* comp, LottieExpression* exp); - void buildGlobal(LottieExpression* exp); + void buildGlobal(float frameNo, LottieExpression* exp); void buildWritables(LottieExpression* exp); Point toPoint2d(jerry_value_t obj);