mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00

We add Windows support to four existing test cases, extract some useful utility functions, and use them to simplify further test cases. We also remove the Windows specific code from preload.inc, since preloading isn't supported on Windows anyway.
30 lines
711 B
PHP
30 lines
711 B
PHP
<?php
|
|
|
|
function ffi_cdef($code, $lib)
|
|
{
|
|
if (isset($lib)) {
|
|
return FFI::cdef($code, $lib);
|
|
} else {
|
|
return FFI::cdef($code);
|
|
}
|
|
}
|
|
|
|
function ffi_get_php_dll_name()
|
|
{
|
|
if (PHP_OS_FAMILY === 'Windows') {
|
|
return "php" . PHP_MAJOR_VERSION . (PHP_ZTS ? "ts" : "") . (PHP_DEBUG ? "_debug" : "") . ".dll";
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
function ffi_get_fastcall_specifier()
|
|
{
|
|
foreach (['__attribute__((fastcall))', '__fastcall', '__vectorcall'] as $spec) {
|
|
try {
|
|
ffi_cdef("extern size_t $spec zend_list_insert(void *ptr, int type);", ffi_get_php_dll_name());
|
|
return "$spec ";
|
|
} catch (Throwable $e) {}
|
|
}
|
|
return "";
|
|
}
|