@@ -393,14 +393,16 @@ static void autoload_func_info_dtor(zval *element)
393
393
Try all registered autoload function to load the requested class */
394
394
PHP_FUNCTION (spl_autoload_call )
395
395
{
396
- zval * class_name , retval ;
397
- zend_string * lc_name , * func_name ;
396
+ zend_string * class_name , * lc_name , * func_name ;
398
397
autoload_func_info * alfi ;
398
+ zval retval , params [1 ];
399
399
400
- if (zend_parse_parameters (ZEND_NUM_ARGS (), "z " , & class_name ) == FAILURE || Z_TYPE_P ( class_name ) != IS_STRING ) {
400
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "S " , & class_name ) == FAILURE ) {
401
401
RETURN_THROWS ();
402
402
}
403
403
404
+ ZVAL_STR (& params [0 ], class_name );
405
+
404
406
if (SPL_G (autoload_functions )) {
405
407
HashPosition pos ;
406
408
zend_ulong num_idx ;
@@ -411,12 +413,12 @@ PHP_FUNCTION(spl_autoload_call)
411
413
int l_autoload_running = SPL_G (autoload_running );
412
414
413
415
SPL_G (autoload_running ) = 1 ;
414
- lc_name = zend_string_tolower (Z_STR_P ( class_name ) );
416
+ lc_name = zend_string_tolower (class_name );
415
417
416
418
fci .size = sizeof (fci );
417
419
fci .retval = & retval ;
418
420
fci .param_count = 1 ;
419
- fci .params = class_name ;
421
+ fci .params = params ;
420
422
fci .no_separation = 1 ;
421
423
422
424
ZVAL_UNDEF (& fci .function_name ); /* Unused */
@@ -474,7 +476,7 @@ PHP_FUNCTION(spl_autoload_call)
474
476
ZVAL_UNDEF (& fcall_info .function_name );
475
477
fcall_info .retval = & retval ;
476
478
fcall_info .param_count = 1 ;
477
- fcall_info .params = class_name ;
479
+ fcall_info .params = params ;
478
480
fcall_info .object = NULL ;
479
481
fcall_info .no_separation = 1 ;
480
482
0 commit comments