Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
communication_ipc
提交
6038d383
C
communication_ipc
项目概览
OpenHarmony
/
communication_ipc
大约 1 年 前同步成功
通知
20
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
communication_ipc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6038d383
编写于
7月 02, 2023
作者:
1
18392170496
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix ablity acts fails
Signed-off-by:
N
18392170496
<
magentang4@huawei.com
>
上级
4857bbfa
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
19 addition
and
7 deletion
+19
-7
ipc/native/src/napi_common/include/napi_remote_object_holder.h
...ative/src/napi_common/include/napi_remote_object_holder.h
+1
-1
ipc/native/src/napi_common/include/napi_remote_object_internal.h
...ive/src/napi_common/include/napi_remote_object_internal.h
+4
-1
ipc/native/src/napi_common/source/napi_remote_object.cpp
ipc/native/src/napi_common/source/napi_remote_object.cpp
+11
-3
ipc/native/src/napi_common/source/napi_remote_object_holder.cpp
...tive/src/napi_common/source/napi_remote_object_holder.cpp
+3
-2
未找到文件。
ipc/native/src/napi_common/include/napi_remote_object_holder.h
浏览文件 @
6038d383
...
...
@@ -28,7 +28,7 @@ class NAPIRemoteObjectHolder : public RefBase {
public:
explicit
NAPIRemoteObjectHolder
(
napi_env
env
,
const
std
::
u16string
&
descriptor
,
napi_value
thisVar
);
~
NAPIRemoteObjectHolder
();
sptr
<
NAPIRemoteObject
>
Get
();
sptr
<
NAPIRemoteObject
>
Get
(
napi_env
envNew
);
void
Set
(
sptr
<
NAPIRemoteObject
>
object
);
void
attachLocalInterface
(
napi_value
localInterface
,
std
::
string
&
descriptor
);
napi_value
queryLocalInterface
(
std
::
string
&
descriptor
);
...
...
ipc/native/src/napi_common/include/napi_remote_object_internal.h
浏览文件 @
6038d383
...
...
@@ -26,7 +26,7 @@
namespace
OHOS
{
class
NAPIRemoteObject
:
public
IPCObjectStub
{
public:
NAPIRemoteObject
(
napi_env
env
,
napi_ref
jsObjectRef
,
const
std
::
u16string
&
descriptor
);
NAPIRemoteObject
(
napi_env
env
New
,
napi_env
env
,
napi_ref
jsObjectRef
,
const
std
::
u16string
&
descriptor
);
~
NAPIRemoteObject
()
override
;
...
...
@@ -37,9 +37,12 @@ public:
int
OnRemoteRequest
(
uint32_t
code
,
MessageParcel
&
data
,
MessageParcel
&
reply
,
MessageOption
&
option
)
override
;
napi_ref
GetJsObjectRef
()
const
;
void
SetNewEnv
(
napi_env
envNew
);
private:
std
::
u16string
desc_
;
napi_env
env_
=
nullptr
;
napi_env
envNew_
=
nullptr
;
napi_value
thisVar_
=
nullptr
;
static
napi_value
ThenCallback
(
napi_env
env
,
napi_callback_info
info
);
static
napi_value
CatchCallback
(
napi_env
env
,
napi_callback_info
info
);
...
...
ipc/native/src/napi_common/source/napi_remote_object.cpp
浏览文件 @
6038d383
...
...
@@ -149,9 +149,10 @@ napi_value RemoteObject_JS_Constructor(napi_env env, napi_callback_info info)
return
thisVar
;
}
NAPIRemoteObject
::
NAPIRemoteObject
(
napi_env
env
,
napi_ref
jsObjectRef
,
const
std
::
u16string
&
descriptor
)
NAPIRemoteObject
::
NAPIRemoteObject
(
napi_env
env
New
,
napi_env
env
,
napi_ref
jsObjectRef
,
const
std
::
u16string
&
descriptor
)
:
IPCObjectStub
(
descriptor
)
{
envNew_
=
envNew
;
env_
=
env
;
desc_
=
descriptor
;
napi_value
thisVar
=
nullptr
;
...
...
@@ -166,7 +167,7 @@ NAPIRemoteObject::~NAPIRemoteObject()
{
ZLOGI
(
LOG_LABEL
,
"NAPIRemoteObject destroyed, desc:%{public}s"
,
Str16ToStr8
(
desc_
).
c_str
());
if
(
thisVarRef_
!=
nullptr
)
{
napi_status
status
=
napi_delete_reference
(
env_
,
thisVarRef_
);
napi_status
status
=
napi_delete_reference
(
env
New
_
,
thisVarRef_
);
NAPI_ASSERT_RETURN_VOID
(
env_
,
status
==
napi_ok
,
"failed to delete ref to js RemoteObject"
);
thisVarRef_
=
nullptr
;
}
...
...
@@ -187,6 +188,13 @@ napi_ref NAPIRemoteObject::GetJsObjectRef() const
return
thisVarRef_
;
}
void
NAPIRemoteObject
::
SetNewEnv
(
napi_env
env
)
{
if
(
envNew_
!=
env
)
{
ZLOGI
(
LOG_LABEL
,
"env updated"
);
}
}
void
NAPI_RemoteObject_getCallingInfo
(
CallingInfo
&
newCallingInfoParam
)
{
newCallingInfoParam
.
callingPid
=
IPCSkeleton
::
GetCallingPid
();
...
...
@@ -660,7 +668,7 @@ sptr<IRemoteObject> NAPI_ohos_rpc_getNativeRemoteObject(napi_env env, napi_value
NAPIRemoteObjectHolder
*
holder
=
nullptr
;
napi_unwrap
(
env
,
object
,
(
void
**
)
&
holder
);
NAPI_ASSERT
(
env
,
holder
!=
nullptr
,
"failed to get napi remote object holder"
);
return
holder
!=
nullptr
?
holder
->
Get
()
:
nullptr
;
return
holder
!=
nullptr
?
holder
->
Get
(
env
)
:
nullptr
;
}
napi_value
proxyConstructor
=
nullptr
;
...
...
ipc/native/src/napi_common/source/napi_remote_object_holder.cpp
浏览文件 @
6038d383
...
...
@@ -42,7 +42,7 @@ NAPIRemoteObjectHolder::~NAPIRemoteObjectHolder()
}
}
sptr
<
NAPIRemoteObject
>
NAPIRemoteObjectHolder
::
Get
()
sptr
<
NAPIRemoteObject
>
NAPIRemoteObjectHolder
::
Get
(
napi_env
envNew
)
{
std
::
lock_guard
<
std
::
mutex
>
lockGuard
(
mutex_
);
// grab an strong reference to the object,
...
...
@@ -52,9 +52,10 @@ sptr<NAPIRemoteObject> NAPIRemoteObjectHolder::Get()
}
sptr
<
NAPIRemoteObject
>
tmp
=
wptrCachedObject_
.
promote
();
if
(
tmp
==
nullptr
)
{
tmp
=
new
NAPIRemoteObject
(
env_
,
jsObjectRef_
,
descriptor_
);
tmp
=
new
NAPIRemoteObject
(
env
New
,
env
_
,
jsObjectRef_
,
descriptor_
);
wptrCachedObject_
=
tmp
;
}
tmp
->
SetNewEnv
(
envNew
);
return
tmp
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录