]> granicus.if.org Git - php/commitdiff
Strlen cleanup (additions for previous one fix)
authorXinchen Hui <laruence@gmail.com>
Sat, 7 May 2016 07:07:04 +0000 (00:07 -0700)
committerXinchen Hui <laruence@gmail.com>
Sat, 7 May 2016 07:08:15 +0000 (00:08 -0700)
Probably compilers will do similar optimization

Zend/zend_object_handlers.c
Zend/zend_strtod.c

index 9abe3875ef7c217ac530c074619fe38a78370fee..ba3e84bf7d593f27770c4867f58d12eb8292ac37 100644 (file)
@@ -1068,6 +1068,7 @@ ZEND_API int zend_check_protected(zend_class_entry *ce, zend_class_entry *scope)
 
 ZEND_API zend_function *zend_get_call_trampoline_func(zend_class_entry *ce, zend_string *method_name, int is_static) /* {{{ */
 {
+       size_t mname_len;
        zend_op_array *func;
        zend_function *fbc = is_static ? ce->__callstatic : ce->__call;
 
@@ -1100,8 +1101,8 @@ ZEND_API zend_function *zend_get_call_trampoline_func(zend_class_entry *ce, zend
 
        //??? keep compatibility for "\0" characters
        //??? see: Zend/tests/bug46238.phpt
-       if (UNEXPECTED(strlen(ZSTR_VAL(method_name)) != ZSTR_LEN(method_name))) {
-               func->function_name = zend_string_init(ZSTR_VAL(method_name), strlen(ZSTR_VAL(method_name)), 0);
+       if (UNEXPECTED((mname_len = strlen(ZSTR_VAL(method_name))) != ZSTR_LEN(method_name))) {
+               func->function_name = zend_string_init(ZSTR_VAL(method_name), mname_len, 0);
        } else {
                func->function_name = zend_string_copy(method_name);
        }
index 8a0863261b16de6e291fd542298705072c2fdd06..889a31685c3f57f8e8192ce39bb6fde81e20ef97 100644 (file)
@@ -4456,7 +4456,7 @@ ZEND_API double zend_oct_strtod(const char *str, const char **endptr)
        double value = 0;
        int any = 0;
 
-       if (strlen(str) < 1) {
+       if (str[0] == '\0') {
                if (endptr != NULL) {
                        *endptr = str;
                }
@@ -4491,7 +4491,7 @@ ZEND_API double zend_bin_strtod(const char *str, const char **endptr)
        double          value = 0;
        int             any = 0;
 
-       if (strlen(str) < 2) {
+       if (str[0] == '\0' || str[1] == '\0') {
                if (endptr != NULL) {
                        *endptr = str;
                }