diff --git a/frameworks/bridge/cj_frontend/frontend/cj_frontend_abstract.h b/frameworks/bridge/cj_frontend/frontend/cj_frontend_abstract.h index f3d7fa42ca55ed1b61c5bf3336df0a424eb8366b..a69e24f14123fe82781dea633661a5d5c8688b41 100644 --- a/frameworks/bridge/cj_frontend/frontend/cj_frontend_abstract.h +++ b/frameworks/bridge/cj_frontend/frontend/cj_frontend_abstract.h @@ -65,11 +65,6 @@ public: return pageRouterManager_->GetParams(); } - bool IsForeground() const - { - return foregroundFrontend_; - } - RefPtr GetAccessibilityManager() const override { return accessibilityManager_; } WindowConfig& GetWindowConfig() override { return manifestParser_->GetWindowConfig(); } bool IsForeground() override { return foregroundFrontend_; } diff --git a/frameworks/bridge/cj_frontend/frontend/cj_page_router.h b/frameworks/bridge/cj_frontend/frontend/cj_page_router.h index 92a6ee3ba8ba0e07a6a4b73b1985ac260e1c0dfe..8dd044400fe13b00385512c8953839ccc47d97ff 100644 --- a/frameworks/bridge/cj_frontend/frontend/cj_page_router.h +++ b/frameworks/bridge/cj_frontend/frontend/cj_page_router.h @@ -80,7 +80,7 @@ private: void PostTask(std::function callback, bool isUI = true); void OnPrePageChange(const RefPtr&); - BaseId::IdType lastTransitionListener_; + BaseId::IdType lastTransitionListener_ = 0; std::list> pageRouterStack_; RefPtr loadingPage_; diff --git a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_foreach_ffi.cpp b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_foreach_ffi.cpp index 64df596593a5bdaa0ba0b915eef35de1236cf618..6481ed05683801cdb69893a9821cf242caa6b74a 100644 --- a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_foreach_ffi.cpp +++ b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_foreach_ffi.cpp @@ -20,6 +20,7 @@ #include #include "cj_lambda.h" + #include "bridge/cj_frontend/runtime/cj_runtime_delegate.h" #include "core/components_ng/syntax/for_each_model.h" @@ -62,7 +63,7 @@ void FfiOHOSAceFrameworkForEachPop() static void FfiOHOSAceFrameworkDeleteIdArray(VectorToCFFIArrayString* src) { - for (size_t i = 0;i < src->size; ++i) { + for (size_t i = 0; i < src->size; ++i) { free(src->buffer[i]); } free(src->buffer); @@ -74,25 +75,20 @@ VectorToCFFIArrayString FfiOHOSAceFrameworkViewGetIdArray(int64_t elmtId) auto buffer = (char**)malloc(sizeof(const char*) * result.size()); if (!buffer) { - return { - .size = 0, - .buffer = nullptr, - .free = FfiOHOSAceFrameworkDeleteIdArray - }; + return { .size = 0, .buffer = nullptr, .free = FfiOHOSAceFrameworkDeleteIdArray }; } size_t i = 0; for (const auto& element : result) { auto data = (char*)malloc(element.size() * sizeof(char)); + if (data == nullptr) { + return { .size = 0, .buffer = nullptr, .free = FfiOHOSAceFrameworkDeleteIdArray }; + } std::char_traits::copy(data, element.c_str(), element.size()); buffer[i++] = data; } - return { - .size = result.size(), - .buffer = buffer, - .free = FfiOHOSAceFrameworkDeleteIdArray - }; + return { .size = result.size(), .buffer = buffer, .free = FfiOHOSAceFrameworkDeleteIdArray }; } VectorToCFFIArray FfiOHOSAceFrameworkViewSetIdArray(int64_t elmtId, VectorCJStringHandle vecHandle) @@ -123,21 +119,17 @@ VectorToCFFIArray FfiOHOSAceFrameworkViewSetIdArray(int64_t elmtId, VectorCJStri temp = (int64_t*)malloc(sizeof(int64_t) * diffIndexArray.size()); if (!temp) { VectorToCFFIArray faultData { - .size = 0, - .buffer = nullptr, - .free = reinterpret_cast(free) + .size = 0, .buffer = nullptr, .free = reinterpret_cast(free) }; return faultData; } VectorToCFFIArray res { - .size = diffIndexArray.size(), - .buffer = temp, - .free = reinterpret_cast(free) + .size = diffIndexArray.size(), .buffer = temp, .free = reinterpret_cast(free) }; for (size_t i = 0; i < diffIndexArray.size(); i++) { - res.buffer[i] = static_cast(diffIndexArray[i]); + res.buffer[i] = static_cast(diffIndexArray[i]); } return res; diff --git a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_richeditor_ffi.cpp b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_richeditor_ffi.cpp index 2ccfdb02fb8d4703b9ef908dcf4fd22cbb38fdd6..869382163622e8e2fbe93b5424b330b4db6c9819 100644 --- a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_richeditor_ffi.cpp +++ b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_richeditor_ffi.cpp @@ -187,6 +187,7 @@ void FfiOHOSAceFrameworkRichEditorOnSelect(void(*callback)(NativeRichEditorSelec result.spanSize = static_cast(spanObjectList.size()); cjCallback(result); + delete[] spans; }; RichEditorModel::GetInstance()->SetOnSelect(std::move(onSelectFunc)); } diff --git a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_web_ffi.cpp b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_web_ffi.cpp index 2e61fd66cd899a99b14077bfd54c1b5f2cd129b9..43e98f2a4a7cf6a112b83d6bbd194801633467ae 100644 --- a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_web_ffi.cpp +++ b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_web_ffi.cpp @@ -202,6 +202,9 @@ void RequestPermissionsFromUserWeb(CJWebPermissionRequest& request) std::string permission = "ohos.permission.READ_PASTEBOARD"; char* cPermission = MallocCString(permission); + if (cPermission == nullptr) { + return; + } auto callBack = [&request](RetDataCPermissionRequestResult infoRef) -> void { if (infoRef.code == 0) { request.GetAccessibleResources();