summaryrefslogtreecommitdiff
path: root/ext/spl/spl_heap.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2014-03-15 22:43:40 +0800
committerXinchen Hui <laruence@gmail.com>2014-03-15 22:43:40 +0800
commit6dd3d5cb36828be4dc8aab5ac2797dcb2d7ebf36 (patch)
treea9b65b6f5697171cf54a5bbd32b71dc323eb966f /ext/spl/spl_heap.c
parentd0bbc227aadd116431722efb656acee4f662f627 (diff)
downloadphp-git-6dd3d5cb36828be4dc8aab5ac2797dcb2d7ebf36.tar.gz
Should not release container before dup
Diffstat (limited to 'ext/spl/spl_heap.c')
-rw-r--r--ext/spl/spl_heap.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/ext/spl/spl_heap.c b/ext/spl/spl_heap.c
index 9d377ce0ae..969fdba736 100644
--- a/ext/spl/spl_heap.c
+++ b/ext/spl/spl_heap.c
@@ -128,7 +128,6 @@ static zval *spl_pqueue_extract_helper(zval *value, int flags) /* {{{ */
if ((flags & SPL_PQUEUE_EXTR_BOTH) == SPL_PQUEUE_EXTR_BOTH) {
return value;
} else if ((flags & SPL_PQUEUE_EXTR_BOTH) > 0) {
-
if ((flags & SPL_PQUEUE_EXTR_DATA) == SPL_PQUEUE_EXTR_DATA) {
zval *data;
if ((data = zend_hash_str_find(Z_ARRVAL_P(value), "data", sizeof("data") - 1)) != NULL) {
@@ -722,9 +721,9 @@ SPL_METHOD(SplPriorityQueue, extract)
if (Z_REFCOUNTED_P(value_out)) {
Z_ADDREF_P(value_out);
}
- zval_ptr_dtor(&value);
- RETURN_ZVAL(value_out, 1, 1);
+ RETVAL_ZVAL(value_out, 1, 0);
+ zval_ptr_dtor(&value);
}
/* }}} */