mirror of
https://gitee.com/openharmony/communication_ipc
synced 2024-11-30 03:20:35 +00:00
!661 修复OnRemoteDied中断言失败crash问题
Merge pull request !661 from dengliang/master
This commit is contained in:
commit
c0e28bfe94
@ -34,7 +34,7 @@ public:
|
||||
bool Matches(napi_value object);
|
||||
|
||||
protected:
|
||||
virtual ~NAPIDeathRecipient();
|
||||
virtual ~NAPIDeathRecipient() = default;
|
||||
|
||||
private:
|
||||
struct OnRemoteDiedParam {
|
||||
|
@ -33,17 +33,6 @@ NAPIDeathRecipient::NAPIDeathRecipient(napi_env env, napi_value jsDeathRecipient
|
||||
NAPI_ASSERT_RETURN_VOID(env, status == napi_ok, "failed to create ref to js death recipient");
|
||||
}
|
||||
|
||||
NAPIDeathRecipient::~NAPIDeathRecipient()
|
||||
{
|
||||
if (env_ != nullptr) {
|
||||
if (deathRecipientRef_ != nullptr) {
|
||||
napi_status status = napi_delete_reference(env_, deathRecipientRef_);
|
||||
NAPI_ASSERT_RETURN_VOID(env_, status == napi_ok, "failed to delete ref to js death recipient");
|
||||
deathRecipientRef_ = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void NAPIDeathRecipient::OnRemoteDied(const wptr<IRemoteObject> &object)
|
||||
{
|
||||
if (deathRecipientRef_ == nullptr) {
|
||||
@ -78,6 +67,9 @@ void NAPIDeathRecipient::OnRemoteDied(const wptr<IRemoteObject> &object)
|
||||
if (returnVal == nullptr) {
|
||||
ZLOGE(LOG_LABEL, "failed to call function onRemoteDied");
|
||||
}
|
||||
|
||||
napi_status napiStatus = napi_delete_reference(param->env, param->deathRecipientRef);
|
||||
NAPI_ASSERT_RETURN_VOID(param->env, napiStatus == napi_ok, "failed to delete ref to js death recipient");
|
||||
delete param;
|
||||
delete work;
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user