diff --git a/include/jsc/JavaScriptContext.h b/include/jsc/JavaScriptContext.h index e679b71..a97c6d3 100644 --- a/include/jsc/JavaScriptContext.h +++ b/include/jsc/JavaScriptContext.h @@ -100,6 +100,7 @@ class JavaScriptContext: public JavaScriptContextBase, public NetworkMetricsList #ifdef ENABLE_AAMP_JSBINDINGS_DYNAMIC void loadAAMPJSBindingsLib(); void unloadAAMPJSBindingsLib(); + void *jscLibHandle = nullptr; #endif #endif JSContextGroupRef mContextGroup; diff --git a/src/jsc/JavaScriptContext.cpp b/src/jsc/JavaScriptContext.cpp index ddca18a..b5ce3e6 100644 --- a/src/jsc/JavaScriptContext.cpp +++ b/src/jsc/JavaScriptContext.cpp @@ -135,7 +135,7 @@ void JavaScriptContext::loadAAMPJSBindingsLib() { static const char *aampJSBindingsLib = "libaampjsbindings.so"; static const char *jscLib = "libJavaScriptCore.so"; - void *jscLibHandle = dlopen(jscLib, RTLD_NOW | RTLD_GLOBAL); + jscLibHandle = dlopen(jscLib, RTLD_NOW | RTLD_GLOBAL); if (!jscLibHandle) { std::cout<<"dlopen error for jsc library " << dlerror() << std::endl; @@ -157,7 +157,6 @@ void JavaScriptContext::loadAAMPJSBindingsLib() NativeJSLogger::log(ERROR, "failed to load %s and error is %s\n", aampJSBindingsLib, dlerror()); } - dlclose(jscLibHandle); } } @@ -166,6 +165,8 @@ void JavaScriptContext::unloadAAMPJSBindingsLib() if (nullptr != gAAMPJSBindings->PlayerLibHandle) { dlclose(gAAMPJSBindings->PlayerLibHandle); + dlclose(jscLibHandle); + } } #endif