Skip to content

Commit 2767025

Browse files
committed
make autoloading more effecient
1 parent 71a7f6d commit 2767025

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

Zend/zend_execute_API.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,11 @@ static zend_class_entry *zend_resolve_nested_class(zend_string *requested_name,
11851185
scope_name = zend_string_init(ZSTR_VAL(requested_name), unqualified_name - ZSTR_VAL(requested_name) + 1, 0);
11861186
scope_name->val[scope_name->len - 1] = '\\'; // todo: there is probably a better way
11871187

1188-
requested_name = zend_string_concat2(ZSTR_VAL(scope_name), ZSTR_LEN(scope_name), ZSTR_VAL(inner_name), ZSTR_LEN(inner_name));
1188+
if (ZSTR_LEN(scope_name) == ZSTR_LEN(inner_name) + 1 && zend_string_starts_with_ci(scope_name, inner_name)) {
1189+
requested_name = zend_string_copy(inner_name);
1190+
} else {
1191+
requested_name = zend_string_concat2(ZSTR_VAL(scope_name), ZSTR_LEN(scope_name), ZSTR_VAL(inner_name), ZSTR_LEN(inner_name));
1192+
}
11891193

11901194
while ((separator = strrchr(ZSTR_VAL(scope_name), '\\'))) {
11911195
const size_t outer_len = separator - ZSTR_VAL(scope_name);

0 commit comments

Comments
 (0)