From 228cf8bfdde6d7f7d991805193038b392bc0e89b Mon Sep 17 00:00:00 2001 From: gurpreet319 Date: Tue, 30 Sep 2025 18:29:53 +0530 Subject: [PATCH] DELIA-68967 : Switching between Xumo Fast Channels and Vipa activated Channels Reason for change: fix for crash Test Procedure: crash shouldn't occur during channel change. Risk : low Priority: P1 --- include/jsc/JavaScriptContext.h | 1 + src/jsc/JavaScriptContext.cpp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) 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 29a8602..f59a316 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