diff --git a/include/IJavaScriptContext.h b/include/IJavaScriptContext.h index 7c5ca76..bf82623 100644 --- a/include/IJavaScriptContext.h +++ b/include/IJavaScriptContext.h @@ -25,6 +25,7 @@ class IJavaScriptContext { public: + virtual ~IJavaScriptContext() = default; virtual bool runScript(const char *script, bool isModule=true, std::string name="", const char *args = nullptr, bool isApplication=false) = 0; virtual bool runFile(const char *file, const char* args, bool isApplication=false) = 0; virtual std::string getUrl() = 0; diff --git a/src/JSRuntimeServer.cpp b/src/JSRuntimeServer.cpp index 342f386..3a0793c 100644 --- a/src/JSRuntimeServer.cpp +++ b/src/JSRuntimeServer.cpp @@ -80,7 +80,7 @@ class JsonWrap uint32_t getUint32(const char *name, bool &err) { - uint32_t res; + uint32_t res = 0; cJSON *itm = cJSON_GetObjectItem(mPtr, name); if (!itm || !cJSON_IsNumber(itm)) { diff --git a/src/NativeJSRenderer.cpp b/src/NativeJSRenderer.cpp index bee81b9..4080373 100644 --- a/src/NativeJSRenderer.cpp +++ b/src/NativeJSRenderer.cpp @@ -506,8 +506,9 @@ void NativeJSRenderer::run() if(!mTestFileName.empty()) { ModuleSettings settings; + uint32_t id = createApplicationIdentifier(); settings.enableJSDOM = mEnableTestFileDOMSupport; - ApplicationRequest appRequest(id, RUN, mTestFileName, settings.enableHttp, settings.enableXHR, settings.enableWebSocket, settings.enableWebSocketEnhanced, settings.enableFetch, settings.enableJSDOM, settings.enableWindow, settings.enablePlayer); + ApplicationRequest appRequest(id, RUN, mTestFileName, settings.enableHttp, settings.enableXHR, settings.enableWebSocket, settings.enableWebSocketEnhanced, settings.enableFetch, settings.enableJSDOM, settings.enableWindow, settings.enablePlayer); NativeJSRenderer::createApplicationInternal(appRequest); NativeJSRenderer::runApplicationInternal(appRequest); mTestFileName = ""; diff --git a/src/jsc/JavaScriptContext.cpp b/src/jsc/JavaScriptContext.cpp index a0af753..09ee2f4 100644 --- a/src/jsc/JavaScriptContext.cpp +++ b/src/jsc/JavaScriptContext.cpp @@ -121,6 +121,10 @@ if (mModuleSettings.enablePlayer) mPriv->releaseAllProtected(); JSGlobalContextRelease(mContext); JSContextGroupRelease(mContextGroup); + if (mNetworkMetricsData) { + delete mNetworkMetricsData; + mNetworkMetricsData = nullptr; + } rtLogInfo("%s end", __FUNCTION__); } diff --git a/src/jsc/JavaScriptUtils.cpp b/src/jsc/JavaScriptUtils.cpp index 5476746..4b9e015 100644 --- a/src/jsc/JavaScriptUtils.cpp +++ b/src/jsc/JavaScriptUtils.cpp @@ -332,6 +332,7 @@ rtError rtReadBinaryBinding(int numArgs, const rtValue* args, rtValue* result, v { result->setString(buffer); } + free(buffer); return RT_OK; } @@ -693,6 +694,7 @@ rtError rtJSRuntimeDownloadMetrics(int numArgs, const rtValue* args, rtValue* re rtValue keys; if (map->Get("allKeys", &keys) != RT_OK) { rtLogWarn("Could not retrieve url for network metrics data."); + delete netMetricsArray; return RT_FAIL; } rtObjectRef objRef = keys.toObject();