diff options
Diffstat (limited to 'ext/spl')
-rw-r--r-- | ext/spl/spl_dllist.c | 5 | ||||
-rw-r--r-- | ext/spl/spl_fixedarray.c | 12 | ||||
-rw-r--r-- | ext/spl/spl_heap.c | 6 |
3 files changed, 9 insertions, 14 deletions
diff --git a/ext/spl/spl_dllist.c b/ext/spl/spl_dllist.c index cc357bc6be..70f2d84128 100644 --- a/ext/spl/spl_dllist.c +++ b/ext/spl/spl_dllist.c @@ -560,8 +560,6 @@ SPL_METHOD(SplDoublyLinkedList, push) return; } - SEPARATE_ZVAL_IF_REF(value); - intern = Z_SPLDLLIST_P(getThis()); spl_ptr_llist_push(intern->llist, value TSRMLS_CC); @@ -580,8 +578,6 @@ SPL_METHOD(SplDoublyLinkedList, unshift) return; } - SEPARATE_ZVAL_IF_REF(value); - intern = Z_SPLDLLIST_P(getThis()); spl_ptr_llist_unshift(intern->llist, value TSRMLS_CC); @@ -806,7 +802,6 @@ SPL_METHOD(SplDoublyLinkedList, offsetSet) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz", &zindex, &value) == FAILURE) { return; } - SEPARATE_ZVAL_IF_REF(value); intern = Z_SPLDLLIST_P(getThis()); diff --git a/ext/spl/spl_fixedarray.c b/ext/spl/spl_fixedarray.c index f9f89dfd9c..62aaffbc3c 100644 --- a/ext/spl/spl_fixedarray.c +++ b/ext/spl/spl_fixedarray.c @@ -405,8 +405,8 @@ static inline void spl_fixedarray_object_write_dimension_helper(spl_fixedarray_o if (!Z_ISUNDEF(intern->array->elements[index])) { zval_ptr_dtor(&(intern->array->elements[index])); } - SEPARATE_ARG_IF_REF(value); - ZVAL_COPY_VALUE(&intern->array->elements[index], value); + ZVAL_DEREF(value); + ZVAL_COPY(&intern->array->elements[index], value); } } /* }}} */ @@ -708,8 +708,8 @@ SPL_METHOD(SplFixedArray, fromArray) spl_fixedarray_init(array, tmp TSRMLS_CC); ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(data), num_index, str_index, element) { - SEPARATE_ARG_IF_REF(element); - ZVAL_COPY_VALUE(&array->elements[num_index], element); + ZVAL_DEREF(element); + ZVAL_COPY(&array->elements[num_index], element); } ZEND_HASH_FOREACH_END(); } else if (num > 0 && !save_indexes) { @@ -719,8 +719,8 @@ SPL_METHOD(SplFixedArray, fromArray) spl_fixedarray_init(array, num TSRMLS_CC); ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(data), element) { - SEPARATE_ARG_IF_REF(element); - ZVAL_COPY_VALUE(&array->elements[i], element); + ZVAL_DEREF(element); + ZVAL_COPY(&array->elements[i], element); i++; } ZEND_HASH_FOREACH_END(); } else { diff --git a/ext/spl/spl_heap.c b/ext/spl/spl_heap.c index 52b4371f57..90d78db6ee 100644 --- a/ext/spl/spl_heap.c +++ b/ext/spl/spl_heap.c @@ -616,7 +616,7 @@ SPL_METHOD(SplHeap, insert) return; } - SEPARATE_ARG_IF_REF(value); + if (Z_REFCOUNTED_P(value)) Z_ADDREF_P(value); spl_ptr_heap_insert(intern->heap, value, getThis() TSRMLS_CC); RETURN_TRUE; @@ -670,8 +670,8 @@ SPL_METHOD(SplPriorityQueue, insert) return; } - SEPARATE_ARG_IF_REF(data); - SEPARATE_ARG_IF_REF(priority); + if (Z_REFCOUNTED_P(data)) Z_ADDREF_P(data); + if (Z_REFCOUNTED_P(priority)) Z_ADDREF_P(priority); array_init(&elem); add_assoc_zval_ex(&elem, "data", sizeof("data") - 1, data); |