Lines Matching refs:alfi

365 static void autoload_func_info_destroy(autoload_func_info *alfi) {  in autoload_func_info_destroy()  argument
366 if (alfi->obj) { in autoload_func_info_destroy()
367 zend_object_release(alfi->obj); in autoload_func_info_destroy()
369 if (alfi->func_ptr && in autoload_func_info_destroy()
370 UNEXPECTED(alfi->func_ptr->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) { in autoload_func_info_destroy()
371 zend_string_release_ex(alfi->func_ptr->common.function_name, 0); in autoload_func_info_destroy()
372 zend_free_trampoline(alfi->func_ptr); in autoload_func_info_destroy()
374 if (alfi->closure) { in autoload_func_info_destroy()
375 zend_object_release(alfi->closure); in autoload_func_info_destroy()
377 efree(alfi); in autoload_func_info_destroy()
387 autoload_func_info *alfi = emalloc(sizeof(autoload_func_info)); in autoload_func_info_from_fci() local
388 alfi->ce = fcc->calling_scope; in autoload_func_info_from_fci()
389 alfi->func_ptr = fcc->function_handler; in autoload_func_info_from_fci()
390 alfi->obj = fcc->object; in autoload_func_info_from_fci()
391 if (alfi->obj) { in autoload_func_info_from_fci()
392 GC_ADDREF(alfi->obj); in autoload_func_info_from_fci()
395 alfi->closure = Z_OBJ(fci->function_name); in autoload_func_info_from_fci()
396 GC_ADDREF(alfi->closure); in autoload_func_info_from_fci()
398 alfi->closure = NULL; in autoload_func_info_from_fci()
400 return alfi; in autoload_func_info_from_fci()
431 autoload_func_info *alfi = in spl_perform_autoload() local
433 if (!alfi) { in spl_perform_autoload()
437 zend_function *func = alfi->func_ptr; in spl_perform_autoload()
440 memcpy(func, alfi->func_ptr, sizeof(zend_op_array)); in spl_perform_autoload()
446 zend_call_known_function(func, alfi->obj, alfi->ce, NULL, 1, &param, NULL); in spl_perform_autoload()
493 autoload_func_info *alfi; in spl_find_registered_function() local
494 ZEND_HASH_FOREACH_PTR(spl_autoload_functions, alfi) { in spl_find_registered_function()
495 if (autoload_func_info_equals(alfi, find_alfi)) { in spl_find_registered_function()
509 autoload_func_info *alfi; in PHP_FUNCTION() local
545 alfi = autoload_func_info_from_fci(&fci, &fcc); in PHP_FUNCTION()
546 if (UNEXPECTED(alfi->func_ptr == &EG(trampoline))) { in PHP_FUNCTION()
549 memcpy(copy, alfi->func_ptr, sizeof(zend_op_array)); in PHP_FUNCTION()
550 alfi->func_ptr->common.function_name = NULL; in PHP_FUNCTION()
551 alfi->func_ptr = copy; in PHP_FUNCTION()
554 alfi = emalloc(sizeof(autoload_func_info)); in PHP_FUNCTION()
555 alfi->func_ptr = zend_hash_str_find_ptr( in PHP_FUNCTION()
557 alfi->obj = NULL; in PHP_FUNCTION()
558 alfi->ce = NULL; in PHP_FUNCTION()
559 alfi->closure = NULL; in PHP_FUNCTION()
562 if (spl_find_registered_function(alfi)) { in PHP_FUNCTION()
563 autoload_func_info_destroy(alfi); in PHP_FUNCTION()
567 zend_hash_next_index_insert_ptr(spl_autoload_functions, alfi); in PHP_FUNCTION()
600 autoload_func_info *alfi = autoload_func_info_from_fci(&fci, &fcc); in PHP_FUNCTION() local
601 Bucket *p = spl_find_registered_function(alfi); in PHP_FUNCTION()
602 autoload_func_info_destroy(alfi); in PHP_FUNCTION()
614 autoload_func_info *alfi; in PHP_FUNCTION() local
622 ZEND_HASH_FOREACH_PTR(spl_autoload_functions, alfi) { in PHP_FUNCTION()
623 if (alfi->closure) { in PHP_FUNCTION()
624 GC_ADDREF(alfi->closure); in PHP_FUNCTION()
625 add_next_index_object(return_value, alfi->closure); in PHP_FUNCTION()
626 } else if (alfi->func_ptr->common.scope) { in PHP_FUNCTION()
630 if (alfi->obj) { in PHP_FUNCTION()
631 GC_ADDREF(alfi->obj); in PHP_FUNCTION()
632 add_next_index_object(&tmp, alfi->obj); in PHP_FUNCTION()
634 add_next_index_str(&tmp, zend_string_copy(alfi->ce->name)); in PHP_FUNCTION()
636 add_next_index_str(&tmp, zend_string_copy(alfi->func_ptr->common.function_name)); in PHP_FUNCTION()
639 add_next_index_str(return_value, zend_string_copy(alfi->func_ptr->common.function_name)); in PHP_FUNCTION()