]> granicus.if.org Git - php/commitdiff
Use STR_COPY() instead of STR_DUP() where possible
authorDmitry Stogov <dmitry@zend.com>
Tue, 1 Apr 2014 13:10:15 +0000 (17:10 +0400)
committerDmitry Stogov <dmitry@zend.com>
Tue, 1 Apr 2014 13:10:15 +0000 (17:10 +0400)
Zend/zend_API.c
Zend/zend_compile.c
Zend/zend_constants.c
Zend/zend_hash.c
ext/reflection/php_reflection.c

index f923740fbd89af9d7bedb7fa482c5606ba2c5cc1..d0cd63edcfcf0dc30821c2f7fa6edf4e6206d722 100644 (file)
@@ -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);
        }
index 1d461ddaa715459c65d6c2ae69d8efcc24bd402b..f481f09e6ecefaa42c5a9b3df723697fa4a37559 100644 (file)
@@ -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));
index f1408d0af93db25afc482aa3461ae57574dd11ef..03246e3cc617f472d92394f61be46033248a36eb 100644 (file)
@@ -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);
 //???  }
index 3cfc62e7a144824f601324f980fa1af6edfe4741..fe64a33b34854d0d9ddaa0cde6bd7027afed47fd 100644 (file)
@@ -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;
                        }
index 869a68d45cfbfce9475e8a88ec8d32ce956dff12..efb32713bdaa565a3b97030a2593bd55ba968acf 100644 (file)
@@ -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 */