{
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;
}
/* }}} */