]> granicus.if.org Git - php/commitdiff
Clarify that FFI::cdef() does not return NULL
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 28 Apr 2020 12:46:04 +0000 (14:46 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 28 Apr 2020 12:46:04 +0000 (14:46 +0200)
ext/ffi/ffi.c
ext/ffi/ffi.stub.php
ext/ffi/ffi_arginfo.h

index 55c1b7093bfd36049e8093aed55bfce3a421f0cc..1ca8a9be7568d1172a914910c722e392795e46de 100644 (file)
@@ -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;
                                }
index 4d3100579e93526ff38ac85ef08b7c52cec7972a..a45235469e7a6d4838a010136edce61f36c80ba7 100644 (file)
@@ -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 {}
 
index 960c3e39650245a2bf099b75544480b040fcdf66..009512fe827dab00819e40bbb4896ce12cfb6d9a 100644 (file)
@@ -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()