]> granicus.if.org Git - php/commitdiff
optimize out strlen() calls
authorIlia Alshanetsky <iliaa@php.net>
Wed, 13 Dec 2006 15:31:47 +0000 (15:31 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Wed, 13 Dec 2006 15:31:47 +0000 (15:31 +0000)
# Patch by Matt Wilmas

ext/standard/basic_functions.c
ext/wddx/wddx.c

index 977f59cece1e3f6a6efde319e70737f524aea2ce..65de5bc14997bcafd96255aebb2e3c67f0a9b8cb 100644 (file)
@@ -4665,13 +4665,13 @@ PHP_FUNCTION(getopt)
                        }
                } else {
                        /* other strings */
-                       if(zend_hash_find(HASH_OF(return_value), optname, strlen(optname)+1, (void **)&args) != FAILURE) {
+                       if(zend_hash_find(HASH_OF(return_value), optname, optname_len + 1, (void **)&args) != FAILURE) {
                                if(Z_TYPE_PP(args) != IS_ARRAY) {
                                        convert_to_array_ex(args);
                                } 
                                zend_hash_next_index_insert(HASH_OF(*args),  (void *)&val, sizeof(zval *), NULL);
                        } else {
-                               zend_hash_add(HASH_OF(return_value), optname, strlen(optname)+1, (void *)&val, sizeof(zval *), NULL);
+                               zend_hash_add(HASH_OF(return_value), optname, optname_len + 1, (void *)&val, sizeof(zval *), NULL);
                        }
                }
        }
index 887c5934611913584ad66b2c0b18f231971c56cb..29657b65b98d5e75c771f98f909a325e6bf323f9 100644 (file)
@@ -974,10 +974,11 @@ static void php_wddx_pop_element(void *user_data, const XML_Char *name)
                                                add_property_zval(ent2->data, ent1->varname, ent1->data);
                                                EG(scope) = old_scope;
                                        } else {
-                                               long l;  
+                                               long l;
                                                double d;
+                                               int varname_len = strlen(ent1->varname);
                                
-                                               switch (is_numeric_string(ent1->varname, strlen(ent1->varname), &l, &d, 0)) {
+                                               switch (is_numeric_string(ent1->varname, varname_len, &l, &d, 0)) {
                                                        case IS_DOUBLE:
                                                                if (d > INT_MAX) {
                                                                        goto bigint;
@@ -988,7 +989,7 @@ static void php_wddx_pop_element(void *user_data, const XML_Char *name)
                                                                break;
                                                        default:
 bigint:
-                                                               zend_hash_update(target_hash,ent1->varname, strlen(ent1->varname)+1, &ent1->data, sizeof(zval *), NULL);
+                                                               zend_hash_update(target_hash,ent1->varname, varname_len + 1, &ent1->data, sizeof(zval *), NULL);
                                                }
                                        }
                                        efree(ent1->varname);