diff options
-rw-r--r-- | ext/ffi/ffi.c | 4 | ||||
-rw-r--r-- | ext/ffi/ffi.stub.php | 2 | ||||
-rw-r--r-- | ext/ffi/ffi_arginfo.h | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/ext/ffi/ffi.c b/ext/ffi/ffi.c index 55c1b7093b..1ca8a9be75 100644 --- a/ext/ffi/ffi.c +++ b/ext/ffi/ffi.c @@ -2869,7 +2869,7 @@ ZEND_METHOD(FFI, cdef) /* {{{ */ efree(FFI_G(tags)); FFI_G(tags) = NULL; } - return; + RETURN_THROWS(); } if (FFI_G(symbols)) { @@ -2881,6 +2881,7 @@ ZEND_METHOD(FFI, cdef) /* {{{ */ addr = DL_FETCH_SYMBOL(handle, ZSTR_VAL(name)); if (!addr) { zend_throw_error(zend_ffi_exception_ce, "Failed resolving C variable '%s'", ZSTR_VAL(name)); + RETURN_THROWS(); } sym->addr = addr; } else if (sym->kind == ZEND_FFI_SYM_FUNC) { @@ -2890,6 +2891,7 @@ ZEND_METHOD(FFI, cdef) /* {{{ */ zend_string_release(mangled_name); if (!addr) { zend_throw_error(zend_ffi_exception_ce, "Failed resolving C function '%s'", ZSTR_VAL(name)); + RETURN_THROWS(); } sym->addr = addr; } diff --git a/ext/ffi/ffi.stub.php b/ext/ffi/ffi.stub.php index 4d3100579e..a45235469e 100644 --- a/ext/ffi/ffi.stub.php +++ b/ext/ffi/ffi.stub.php @@ -4,7 +4,7 @@ final class FFI { - public static function cdef(string $code = UNKNOWN, string $lib = UNKNOWN): ?FFI {} + public static function cdef(string $code = UNKNOWN, string $lib = UNKNOWN): FFI {} public static function load(string $filename): ?FFI {} diff --git a/ext/ffi/ffi_arginfo.h b/ext/ffi/ffi_arginfo.h index 960c3e3965..009512fe82 100644 --- a/ext/ffi/ffi_arginfo.h +++ b/ext/ffi/ffi_arginfo.h @@ -1,6 +1,6 @@ /* This is a generated file, edit the .stub.php file instead. */ -ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_FFI_cdef, 0, 0, FFI, 1) +ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_FFI_cdef, 0, 0, FFI, 0) ZEND_ARG_TYPE_INFO(0, code, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, lib, IS_STRING, 0) ZEND_END_ARG_INFO() |