js的script_control_cpp没有效果?

我看bindings-generator的代码里,只有lua用到这个选项,js根本就没有用到?
是从什么时候开始,只能通过js来控制 cpp对象的生命周期了吗?
@minggo

PS: 为什么用“jsbindings的script_control_cpp没有效果?”作为标题,总是提示title无效?

@panda 现在的js绑定默认就是js控制c++对象了吧?

现在有一个问题。我在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才对?

@panda 这是1.5.2绑定的代码。看起来不是release,而是直接delete了?

上传中…
1.6变成了 SAFE_DELETE,是不是应该是SAFE_RELEASE才对?

@panda @jare @nantas 这个问题可以看一下吗?

creator相关的问题应该到creator分类下去建个帖子。