diff --git a/frameworks/bridge/js_frontend/engine/jsi/ark_js_runtime.cpp b/frameworks/bridge/js_frontend/engine/jsi/ark_js_runtime.cpp index 2e25284da22d74033effb3bd953dbf4ac639bfc2..11bca1c2d4e5c47fef11707bd278148bda7be823 100644 --- a/frameworks/bridge/js_frontend/engine/jsi/ark_js_runtime.cpp +++ b/frameworks/bridge/js_frontend/engine/jsi/ark_js_runtime.cpp @@ -125,6 +125,11 @@ bool ArkJSRuntime::ExecuteModuleBuffer(const uint8_t* data, int32_t size, const #else JSExecutionScope executionScope(vm_); LocalScope scope(vm_); + if (needUpdate_) { + // VM load adc file first time should set this tag. + JSNApi::SetRecordWithBundleNameTag(vm_, true); + needUpdate_ = false; + } bool ret = JSNApi::ExecuteModuleBuffer(vm_, data, size, filename, needUpdate); HandleUncaughtException(); return ret; diff --git a/frameworks/bridge/js_frontend/engine/jsi/ark_js_runtime.h b/frameworks/bridge/js_frontend/engine/jsi/ark_js_runtime.h index 3cde52c827bdd1e07e552eac769b60821e8162b0..0a69d82c9bd1b9ee6ad81541ac0eec35044307a4 100644 --- a/frameworks/bridge/js_frontend/engine/jsi/ark_js_runtime.h +++ b/frameworks/bridge/js_frontend/engine/jsi/ark_js_runtime.h @@ -201,6 +201,7 @@ private: std::string libPath_ {}; bool usingExistVM_ = false; bool isDebugMode_ = true; + bool needUpdate_ = true; DebuggerPostTask debuggerPostTask_; ErrorEventHandler errorCallback_; #if defined(PREVIEW) diff --git a/frameworks/bridge/js_frontend/engine/jsi/jsi_base_utils.cpp b/frameworks/bridge/js_frontend/engine/jsi/jsi_base_utils.cpp index ced6231d30d5e73826007dcdb01cc1546374d67c..fe00e2f4f747df1f515b10784030ad696ff41526 100644 --- a/frameworks/bridge/js_frontend/engine/jsi/jsi_base_utils.cpp +++ b/frameworks/bridge/js_frontend/engine/jsi/jsi_base_utils.cpp @@ -348,8 +348,10 @@ std::string JsiBaseUtils::TranslateStack(const std::string& stackStr, const std: replace(str.begin(), str.end(), '/', '\\'); } char* ch = strrchr((char*)str.c_str(), '.'); - int index = ch - str.c_str(); - str.insert(index, "_"); + if (ch != nullptr) { + int index = ch - str.c_str(); + str.insert(index, "_"); + } runningPageTag = str; } @@ -398,8 +400,10 @@ std::string JsiBaseUtils::TranslateBySourceMap(const std::string& stackStr, cons if (!isAppPage) { std::string tag = std::as_const(pageUrl); char* ch = strrchr((char*)tag.c_str(), '.'); - int index = ch - tag.c_str(); - tag.insert(index, "_"); + if (ch != nullptr) { + int index = ch - tag.c_str(); + tag.insert(index, "_"); + } runningPageTag = tag; } // find per line of stack