我看bindings-generator的代码里,只有lua用到这个选项,js根本就没有用到?
是从什么时候开始,只能通过js来控制 cpp对象的生命周期了吗?
@minggo
PS: 为什么用“jsbindings的script_control_cpp没有效果?”作为标题,总是提示title无效?
我看bindings-generator的代码里,只有lua用到这个选项,js根本就没有用到?
是从什么时候开始,只能通过js来控制 cpp对象的生命周期了吗?
@minggo
PS: 为什么用“jsbindings的script_control_cpp没有效果?”作为标题,总是提示title无效?
现在有一个问题。我在C++里有两个Object:A和B,A创建并引用了B.
在js里,
test: function() {
this.a = new A();
var b = a.get_b(); // 返回B
...
// 这里return后,b就被release了。
}
这种问题怎么解决?
需要手动切换模式的,在 ccConfig.h 中,修改 ENABLE_GC_FOR_NATIVE_OBJECTS 为 1 即可
请问 only when the JS/Lua objects are collected.
怎么理解? 如果改成1后,会影响cocos creator本身的内存管理吗?
Cocos Creator 默认就是 1
这个意思是只有当 JS 对象被垃圾回收的时候,其对应的 C++ 对象才会被回收
现在的问题就是这个。
creator项目里。js对象回收的时候,c++对象被destroy了。但是c++对象其实是被另一个c++对象retain的,不应该被destroy。
那说明原生层面的 reference count 管理有问题,JS 对象只会 retain 一次,并在 GC 时 release 一次
我对这一块不是很了解,但是我感觉似乎有点问题。
我的游在箭头所指的地方crash了,原因是导出的finalize里面,直接调用了 delete,而不是 Ref::release()。其中Player继承了Ref
根据红框里的信息,我搜索了一下代码,继承Ref的情况下,根本不会设置__cppCreated这个属性。所以我猜导出的代码应该是release()而不是delete才对?
creator相关的问题应该到creator分类下去建个帖子。