diff options
author | Nikita Popov <nikic@php.net> | 2014-08-15 22:36:22 +0200 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2014-08-15 22:36:22 +0200 |
commit | 9cfbf333b03f1a50394219f9d42871a6564b8ac6 (patch) | |
tree | fb31b246f7dada13d357e3e39111f8e99f673c97 /Zend | |
parent | b511bf828cfbff5a6a06196800812671f2b779b8 (diff) | |
download | php-git-9cfbf333b03f1a50394219f9d42871a6564b8ac6.tar.gz |
Fix list() = string refcounting
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_compile.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 948fc55bf5..5a3359efa7 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -3786,6 +3786,10 @@ static void zend_compile_list_assign(znode *result, zend_ast *ast, znode *expr_n dim_node.op_type = IS_CONST; ZVAL_LONG(&dim_node.u.constant, i); + if (expr_node->op_type == IS_CONST) { + Z_TRY_ADDREF(expr_node->u.constant); + } + opline = zend_emit_op(&fetch_result, get_list_fetch_opcode(expr_node->op_type), expr_node, &dim_node TSRMLS_CC); opline->extended_value |= ZEND_FETCH_ADD_LOCK; |