mirror of
https://github.com/php/php-src.git
synced 2024-09-24 03:17:26 +00:00
- MFB Need to store length (and type) of class name
This commit is contained in:
parent
41ef7fb555
commit
d3ae24eb79
@ -341,6 +341,7 @@ static void autoload_func_info_dtor(autoload_func_info *alfi)
|
||||
PHP_FUNCTION(spl_autoload_call)
|
||||
{
|
||||
zval **class_name, *retval = NULL;
|
||||
int class_name_len, class_name_type;
|
||||
char *func_name, *lc_name;
|
||||
uint func_name_len;
|
||||
ulong dummy;
|
||||
@ -353,7 +354,9 @@ PHP_FUNCTION(spl_autoload_call)
|
||||
}
|
||||
|
||||
if (SPL_G(autoload_functions)) {
|
||||
lc_name = zend_u_str_tolower_dup(Z_TYPE_PP(class_name), Z_UNIVAL_PP(class_name), Z_UNILEN_PP(class_name));
|
||||
class_name_type = Z_TYPE_PP(class_name);
|
||||
class_name_len = Z_UNILEN_PP(class_name);
|
||||
lc_name = zend_u_str_tolower_dup(class_name_type, Z_UNIVAL_PP(class_name), Z_UNILEN_PP(class_name));
|
||||
zend_hash_internal_pointer_reset_ex(SPL_G(autoload_functions), &function_pos);
|
||||
while(zend_hash_has_more_elements_ex(SPL_G(autoload_functions), &function_pos) == SUCCESS && !EG(exception)) {
|
||||
zend_hash_get_current_key_ex(SPL_G(autoload_functions), &func_name, &func_name_len, &dummy, 0, &function_pos);
|
||||
@ -362,7 +365,7 @@ PHP_FUNCTION(spl_autoload_call)
|
||||
if (retval) {
|
||||
zval_ptr_dtor(&retval);
|
||||
}
|
||||
if (zend_u_hash_exists(EG(class_table), Z_TYPE_PP(class_name), lc_name, Z_UNILEN_PP(class_name)+1)) {
|
||||
if (zend_u_hash_exists(EG(class_table), class_name_type, lc_name, class_name_len+1)) {
|
||||
break;
|
||||
}
|
||||
zend_hash_move_forward_ex(SPL_G(autoload_functions), &function_pos);
|
||||
|
Loading…
Reference in New Issue
Block a user