diff options
author | Andi Gutmans <andi@php.net> | 2000-08-05 13:54:07 +0000 |
---|---|---|
committer | Andi Gutmans <andi@php.net> | 2000-08-05 13:54:07 +0000 |
commit | 50ddf9e3d51d633fce7b74a0941a2f2818bcbb3d (patch) | |
tree | 72ac828acde2bef413487837aaf8c708e9942987 /Zend | |
parent | d140a799f7678cb6fbcfcbd71e99bb3055735776 (diff) | |
download | php-git-50ddf9e3d51d633fce7b74a0941a2f2818bcbb3d.tar.gz |
- Use some more SEPARATE_ZVAL macros instead of replicated code.
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_execute.c | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 00c254d52f..d1faef252c 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -642,13 +642,8 @@ static void zend_fetch_dimension_address(znode *result, znode *op1, znode *op2, case BP_VAR_RW: case BP_VAR_W: if (!PZVAL_IS_REF(container)) { - container->refcount--; - if (container->refcount>0) { - ALLOC_ZVAL(container); - *container_ptr = container; - container->is_ref=0; - } - container->refcount=1; + SEPARATE_ZVAL(container_ptr); + container = *container_ptr; } array_init(container); break; @@ -658,12 +653,8 @@ static void zend_fetch_dimension_address(znode *result, znode *op1, znode *op2, switch (container->type) { case IS_ARRAY: if ((type==BP_VAR_W || type==BP_VAR_RW) && container->refcount>1 && !PZVAL_IS_REF(container)) { - container->refcount--; - ALLOC_ZVAL(*container_ptr); - **container_ptr = *container; + SEPARATE_ZVAL(container_ptr); container = *container_ptr; - INIT_PZVAL(container); - zendi_zval_copy_ctor(*container); } if (op2->op_type == IS_UNUSED) { zval *new_zval = &EG(uninitialized_zval); @@ -826,13 +817,8 @@ static void zend_fetch_property_address(znode *result, znode *op1, znode *op2, t case BP_VAR_RW: case BP_VAR_W: if (!PZVAL_IS_REF(container)) { - container->refcount--; - if (container->refcount>0) { - ALLOC_ZVAL(container); - *container_ptr = container; - container->is_ref=0; - } - container->refcount=1; + SEPARATE_ZVAL(container_ptr); + container = *container_ptr; } object_init(container); break; @@ -855,12 +841,8 @@ static void zend_fetch_property_address(znode *result, znode *op1, znode *op2, t if ((type==BP_VAR_W || type==BP_VAR_RW) && container->refcount>1 && !PZVAL_IS_REF(container)) { - container->refcount--; - ALLOC_ZVAL(*container_ptr); - **container_ptr = *container; + SEPARATE_ZVAL(container_ptr); container = *container_ptr; - INIT_PZVAL(container); - zendi_zval_copy_ctor(*container); } *retval = zend_fetch_property_address_inner(container->value.obj.properties, op2, Ts, type ELS_CC); SELECTIVE_PZVAL_LOCK(**retval, result); |