summaryrefslogtreecommitdiff
path: root/ext/spl
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl')
-rw-r--r--ext/spl/spl_dllist.c5
-rw-r--r--ext/spl/spl_fixedarray.c12
-rw-r--r--ext/spl/spl_heap.c6
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);