]> granicus.if.org Git - php/commitdiff
Avoid strlen usage
authorXinchen Hui <laruence@php.net>
Sat, 20 Sep 2014 07:22:12 +0000 (15:22 +0800)
committerXinchen Hui <laruence@php.net>
Sat, 20 Sep 2014 07:27:36 +0000 (15:27 +0800)
Zend/zend_compile.c

index 73bc44acd731792a91f721f887c51eb1c78c15ed..bad7bffbd722cb81e64f4a9f2935d8887c1f2514 100644 (file)
@@ -115,20 +115,19 @@ static zend_string *zend_build_runtime_definition_key(zend_string *name, unsigne
 {
        zend_string *result;
        char char_pos_buf[32];
-       size_t char_pos_len = zend_sprintf(char_pos_buf, "%p", lex_pos);
+       size_t filename_len, char_pos_len = zend_sprintf(char_pos_buf, "%p", lex_pos);
 
        const char *filename;
        if (CG(active_op_array)->filename) {
                filename = CG(active_op_array)->filename->val;
+               filename_len = CG(active_op_array)->filename->len;
        } else {
                filename = "-";
+               filename_len = sizeof("-") - 1;
        }
-
        /* NULL, name length, filename length, last accepting char position length */
-       result = zend_string_alloc(1 + name->len + strlen(filename) + char_pos_len, 0);
-
-       result->val[0] = '\0';
-       sprintf(result->val + 1, "%s%s%s", name->val, filename, char_pos_buf);
+       result = zend_string_alloc(1 + name->len + filename_len + char_pos_len, 0);
+       sprintf(result->val, "%c%s%s%s", '\0', name->val, filename, char_pos_buf);
        return result;
 }
 /* }}} */