mirror of
https://github.com/openharmony/window_window_manager.git
synced 2026-08-24 15:55:05 -04:00
!12962 Clear NAPI reference
Merge pull request !12962 from wangyaohui/memleak_250226
This commit is contained in:
@@ -228,8 +228,12 @@ napi_value JsPipController::OnUpdateContentNode(napi_env env, napi_callback_info
|
||||
napi_delete_reference(env, typeNodeRef);
|
||||
return;
|
||||
}
|
||||
napi_ref oldTypeNodeRef = pipController->GetTypeNode();
|
||||
pipController->UpdateContentNodeRef(typeNodeRef);
|
||||
napi_delete_reference(env, typeNodeRef);
|
||||
if (oldTypeNodeRef != nullptr) {
|
||||
napi_delete_reference(env, oldTypeNodeRef);
|
||||
oldTypeNodeRef = nullptr;
|
||||
}
|
||||
task->Resolve(env, NapiGetUndefined(env));
|
||||
};
|
||||
if (napi_status::napi_ok != napi_send_event(env, asyncTask, napi_eprio_immediate)) {
|
||||
|
||||
@@ -29,6 +29,7 @@ class PipOption : virtual public RefBase {
|
||||
public:
|
||||
explicit PipOption();
|
||||
virtual ~PipOption() = default;
|
||||
void ClearNapiRefs(napi_env env);
|
||||
void SetContext(void* contextPtr);
|
||||
void SetNavigationId(const std::string& navigationId);
|
||||
void SetPipTemplate(uint32_t templateType);
|
||||
|
||||
@@ -76,6 +76,9 @@ PictureInPictureController::PictureInPictureController(sptr<PipOption> pipOption
|
||||
|
||||
PictureInPictureController::~PictureInPictureController()
|
||||
{
|
||||
if (pipOption_) {
|
||||
pipOption_->ClearNapiRefs(env_);
|
||||
}
|
||||
TLOGI(WmsLogTag::WMS_PIP, "Destruction");
|
||||
if (!isAutoStartEnabled_) {
|
||||
return;
|
||||
|
||||
@@ -22,6 +22,18 @@ PipOption::PipOption()
|
||||
{
|
||||
}
|
||||
|
||||
void PipOption::ClearNapiRefs(napi_env env)
|
||||
{
|
||||
if (customNodeController_) {
|
||||
napi_delete_reference(env, customNodeController_);
|
||||
customNodeController_ = nullptr;
|
||||
}
|
||||
if (typeNode_) {
|
||||
napi_delete_reference(env, typeNode_);
|
||||
typeNode_ = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void PipOption::SetContext(void* contextPtr)
|
||||
{
|
||||
contextPtr_ = contextPtr;
|
||||
|
||||
Reference in New Issue
Block a user