From 042c937f6915876a1aec014394daa1db8f75cea6 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 1 Apr 2014 17:10:15 +0400 Subject: [PATCH] Use STR_COPY() instead of STR_DUP() where possible --- Zend/zend_API.c | 2 +- Zend/zend_compile.c | 4 ++-- Zend/zend_constants.c | 3 ++- Zend/zend_hash.c | 2 +- ext/reflection/php_reflection.c | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index f923740fbd..d0cd63edcf 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1083,7 +1083,7 @@ static int zend_merge_property(zval *value TSRMLS_DC, int num_args, va_list args zend_object_handlers *obj_ht = va_arg(args, zend_object_handlers *); zval member; - ZVAL_STR(&member, STR_DUP(hash_key->key, 0)); + ZVAL_STR(&member, STR_COPY(hash_key->key)); obj_ht->write_property(obj, &member, value, 0 TSRMLS_CC); zval_ptr_dtor(&member); } diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 1d461ddaa7..f481f09e6e 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -2021,7 +2021,7 @@ void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC) /* {{{ */ if (Z_TYPE(name) != IS_STRING) { zend_error_noreturn(E_COMPILE_ERROR, "Method name must be a string"); } - Z_STR(name) = STR_DUP(Z_STR(name), 0); + Z_STR(name) = STR_COPY(Z_STR(name)); FREE_POLYMORPHIC_CACHE_SLOT(last_op->op2.constant); last_op->op2.constant = zend_add_func_name_literal(CG(active_op_array), &name TSRMLS_CC); @@ -7233,7 +7233,7 @@ void zend_do_use_non_class(znode *ns_name, znode *new_name, int is_global, int i } if (case_sensitive) { - lookup_name = STR_DUP(Z_STR_P(name), 0); + lookup_name = STR_COPY(Z_STR_P(name)); } else { lookup_name = STR_ALLOC(Z_STRLEN_P(name), 0); zend_str_tolower_copy(lookup_name->val, Z_STRVAL_P(name), Z_STRLEN_P(name)); diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index f1408d0af9..03246e3cc6 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -49,7 +49,8 @@ static void copy_zend_constant(zval *zv) Z_PTR_P(zv) = malloc(sizeof(zend_constant)/*, c->flags & CONST_PERSISTENT*/); memcpy(Z_PTR_P(zv), c, sizeof(zend_constant)); - c->name = STR_DUP(c->name, c->flags & CONST_PERSISTENT); +//??? c->name = STR_DUP(c->name, c->flags & CONST_PERSISTENT); + c->name = STR_COPY(c->name); //??? if (!(c->flags & CONST_PERSISTENT)) { zval_copy_ctor(&c->value); //??? } diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 3cfc62e7a1..fe64a33b34 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -1414,7 +1414,7 @@ ZEND_API int zend_hash_get_current_key_ex(const HashTable *ht, zend_string **str p = ht->arData + idx; if (p->key) { if (duplicate) { - *str_index = STR_DUP(p->key, 0); + *str_index = STR_COPY(p->key); } else { *str_index = p->key; } diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 869a68d45c..efb32713bd 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -276,7 +276,7 @@ static zend_function *_copy_function(zend_function *fptr TSRMLS_DC) /* {{{ */ zend_function *copy_fptr; copy_fptr = emalloc(sizeof(zend_function)); memcpy(copy_fptr, fptr, sizeof(zend_function)); - copy_fptr->internal_function.function_name = STR_DUP(fptr->internal_function.function_name, 0); + copy_fptr->internal_function.function_name = STR_COPY(fptr->internal_function.function_name); return copy_fptr; } else { /* no copy needed */ -- 2.40.0