Fix possible WeakEcmaGlobalStorage double-free

Issue: https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/I7HKQ2
Signed-off-by: Gymee <yumeijie@huawei.com>
Change-Id: Ia8a6f0bb9f61235ca29caf659e0cf87268d4be24
This commit is contained in:
Gymee 2023-07-01 11:44:12 +08:00
parent 5374ae51a0
commit 877ac51bcb

View File

@ -217,6 +217,8 @@ public:
return GetAddress() == nullptr;
}
void SetWeakCallback(void *ref, WeakRefClearCallBack freeGlobalCallBack,
WeakRefClearCallBack nativeFinalizeCallback);
void SetWeak();
void ClearWeak();
@ -1524,6 +1526,13 @@ inline void CopyableGlobal<T>::Free()
}
}
template <typename T>
void CopyableGlobal<T>::SetWeakCallback(void *ref, WeakRefClearCallBack freeGlobalCallBack,
WeakRefClearCallBack nativeFinalizeCallback)
{
address_ = JSNApi::SetWeakCallback(vm_, address_, ref, freeGlobalCallBack, nativeFinalizeCallback);
}
template<typename T>
void CopyableGlobal<T>::SetWeak()
{