NC接口,对于raw value形式的全局变量,生成的 N_get接口讨论
原生接口:
Foo global_foo;
NC生成接口:
CPP2X_ABI void * N_get_global_foo() {
try {
return static_cast<void *>(&global_foo);
} CPP2X_NC_CATCH_RETURN
}
当前实现直接返回的是原生对象global_foo的地址指针。 理论上此处为BUG,因为对于raw value的全局变量来说,我get后的对象应该与原生的全局对象没关系了,就算我把get的这个值修改了,也不应该影响到原生对象。 所以认为以下实现才合理:
CPP2X_ABI void * N_get_global_foo() {
try {
return static_cast<void *>(new Foo(global_foo));
} CPP2X_NC_CATCH_RETURN
}
Edited by mingfa.yang