关于Variant计数管理设计
Closed this issue · 1 comments
owenliang commented
能否把Variant关于reference的逻辑直接干掉,统一走一致的引用计数管理?
Variant(zval *v)
{
reference = false;
ref_val = NULL;
memcpy(&val, v, sizeof(zval));
zval_add_ref(&val);
}
Variant(zval *v, bool ref)
{
ref_val = v;
reference = ref;
}
第二个构造函数引入了ref的概念,感觉很别扭。
问题是:能否直接干掉ref的设计,统一走zval的引用计数管理,这样会带来什么问题。
@matyhtf 辛苦解释下~
matyhtf commented
扩展函数的输入输出需要依赖这个,需要直接引用 PHP 层的 zval *,不能进行复制。否则无法实现直接操作。