summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2014-09-20 15:22:12 +0800
committerXinchen Hui <laruence@php.net>2014-09-20 15:27:36 +0800
commit95836a350420cabc2e8e5f5c45131fba46504a3b (patch)
tree52a2f2c290ed31df0f7dd354edd96cf0b8225a6c
parent7ecc7e6bc28dd11864fad728b8607c07fd192d61 (diff)
downloadphp-git-95836a350420cabc2e8e5f5c45131fba46504a3b.tar.gz
Avoid strlen usage
-rw-r--r--Zend/zend_compile.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 73bc44acd7..bad7bffbd7 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -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;
}
/* }}} */