diff --git a/src/loaders/lottie/tvgLottieExpressions.cpp b/src/loaders/lottie/tvgLottieExpressions.cpp index ebe0ae81..99212946 100644 --- a/src/loaders/lottie/tvgLottieExpressions.cpp +++ b/src/loaders/lottie/tvgLottieExpressions.cpp @@ -1283,8 +1283,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->idx); jerry_object_set_sz(global, EXP_INDEX, index); jerry_value_free(index); @@ -1392,7 +1394,7 @@ jerry_value_t LottieExpressions::evaluate(float frameNo, LottieExpression* exp) { if (exp->disabled) 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 4a3c2dcf..60516374 100644 --- a/src/loaders/lottie/tvgLottieExpressions.h +++ b/src/loaders/lottie/tvgLottieExpressions.h @@ -139,7 +139,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); //global object, attributes, methods jerry_value_t global;