com php-src: Fixed refcounting: ext/standard/formatted_print .c
| From: | Dmitry Stogov | Date: | Wed, 16 Apr 2014 08:07:58 +0000 |
| Subject: | com php-src: Fixed refcounting: ext/standard/formatted_print .c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-77384@lists.php.net to get a copy of this message | ||
Commit: 10824893027fa91faa2818212d4b902a5e2116ad
Author: Dmitry Stogov <dmitry@zend.com> Wed, 16 Apr 2014 12:07:58 +0400
Parents: 153e549886ef775c4c15037bbcc6b1b9f360b282
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=10824893027fa91faa2818212d4b902a5e2116ad
Log:
Fixed refcounting
Changed paths:
M ext/standard/formatted_print.c
Diff:
diff --git a/ext/standard/formatted_print.c b/ext/standard/formatted_print.c
index 1f5a93f..2e6e2f6 100644
--- a/ext/standard/formatted_print.c
+++ b/ext/standard/formatted_print.c
@@ -393,23 +393,23 @@ php_formatted_print(int param_count, int use_array, int format_offset
TSRMLS_DC)
if (use_array) {
int i = 1;
zval *zv;
- zval array;
+ zval *array;
z_format = &args[format_offset];
- ZVAL_DUP(&array, &args[1 + format_offset]);
- convert_to_array_ex(&array);
+ array = &args[1 + format_offset];
+ SEPARATE_ZVAL(array);
+ convert_to_array_ex(array);
- argc = 1 + zend_hash_num_elements(Z_ARRVAL(array));
+ argc = 1 + zend_hash_num_elements(Z_ARRVAL_P(array));
newargs = (zval *)safe_emalloc(argc, sizeof(zval), 0);
ZVAL_COPY_VALUE(&newargs[0], z_format);
- for (zend_hash_internal_pointer_reset(Z_ARRVAL(array));
- (zv = zend_hash_get_current_data(Z_ARRVAL(array))) != NULL;
- zend_hash_move_forward(Z_ARRVAL(array))) {
+ for (zend_hash_internal_pointer_reset(Z_ARRVAL_P(array));
+ (zv = zend_hash_get_current_data(Z_ARRVAL_P(array))) != NULL;
+ zend_hash_move_forward(Z_ARRVAL_P(array))) {
ZVAL_COPY_VALUE(&newargs[i], zv);
i++;
}
- zval_dtor(&array);
args = newargs;
format_offset = 0;
}