通过 external 或者 wrap 关联了 native 对象的 object,序列化之后传输到其他线程使用

模拟器(4.1.0.56)上断点实测 object 上挂 external 的表现是,序列化之后的对象也能看到 external 内存,这里是否 finalize callback 可能会被多次调用导致 double free?或者可能 finalize callback 调用时并非所有线程的对象都已经 gc,导致 use after free?

HarmonyOS
2024-05-10 21:55:14
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
towerwan

看使用方式,如果 napi_wrap不需要接收创建的napi_ref,最后一个参数传递nullptr,创建的napi_ref是弱引用,由系统管理,不需要用户手动释放,系统自动管理计数器,不会出现 double free。如果传的是引用,则由用户手动释放,就需要注意释放时机了。

分享
微博
QQ
微信
回复
2024-05-11 11:16:10
相关问题
求大佬告知如何序列化对象
31浏览 • 0回复 待解决
自定义类如何实现序列化
346浏览 • 1回复 待解决
有谁知道 task 参数无法序列化
286浏览 • 1回复 待解决
ArkTs怎么传递对象或者类给Native
425浏览 • 1回复 待解决
鸿蒙OS无法关联启动其他应用。
6968浏览 • 1回复 待解决
XComponent是怎么与native进行关联
696浏览 • 1回复 待解决
Router传递Object对象解读
172浏览 • 0回复 待解决
Native工程中如何使用其他三方so库
462浏览 • 1回复 待解决
如何将Map/HashMap转为Object对象
83浏览 • 1回复 待解决