From 68584b5822a8df57de461389f1773fe9932d9700 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Mon, 17 Jul 2023 07:48:29 +0200 Subject: [PATCH] Test memleak when FFI::new() or FFI::type() is called as instance methods --- ext/ffi/tests/017.phpt | 8 +++++--- ext/ffi/tests/021.phpt | 2 +- ext/ffi/tests/046.phpt | 16 +++++++++------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/ext/ffi/tests/017.phpt b/ext/ffi/tests/017.phpt index 766bc4bdae2af..12bf71d0dfae6 100644 --- a/ext/ffi/tests/017.phpt +++ b/ext/ffi/tests/017.phpt @@ -6,18 +6,20 @@ ffi ffi.enable=1 --FILE-- new("struct X {void x();}")); } catch (Throwable $e) { echo get_class($e) . ": " . $e->getMessage()."\n"; } try { - var_dump(FFI::new("struct X {struct X x;}")); + var_dump($ffi->new("struct X {struct X x;}")); } catch (Throwable $e) { echo get_class($e) . ": " . $e->getMessage()."\n"; } try { - var_dump(FFI::new("struct X {struct X *ptr;}")); + var_dump($ffi->new("struct X {struct X *ptr;}")); } catch (Throwable $e) { echo get_class($e) . ": " . $e->getMessage()."\n"; } diff --git a/ext/ffi/tests/021.phpt b/ext/ffi/tests/021.phpt index ceaf96d7b95aa..bd8148a3f946e 100644 --- a/ext/ffi/tests/021.phpt +++ b/ext/ffi/tests/021.phpt @@ -7,7 +7,7 @@ ffi.enable=1 --FILE-- new($type)) !== $size) { echo "FAIL: sizeof($type) != $size\n"; } } diff --git a/ext/ffi/tests/046.phpt b/ext/ffi/tests/046.phpt index ebce17728b42f..bde239f55da7d 100644 --- a/ext/ffi/tests/046.phpt +++ b/ext/ffi/tests/046.phpt @@ -6,26 +6,28 @@ ffi ffi.enable=1 --FILE-- type("uint8_t"); var_dump($x->getKind() === $x::TYPE_UINT8); var_dump($x->getSize()); var_dump($x->getAlignment()); -$x = FFI::type("enum __attribute__((packed)) {a2, b2}"); +$x = $ffi->type("enum __attribute__((packed)) {a2, b2}"); var_dump($x->getKind() === $x::TYPE_ENUM); var_dump($x->getEnumKind() === $x::TYPE_UINT8); -$x = FFI::type("char[5]"); +$x = $ffi->type("char[5]"); var_dump($x->getKind() === $x::TYPE_ARRAY); var_dump($x->getSize()); var_dump($x->getArrayElementType()->getKind() === $x::TYPE_CHAR); var_dump($x->getArrayLength()); -$x = FFI::type("void*"); +$x = $ffi->type("void*"); var_dump($x->getKind() === $x::TYPE_POINTER); var_dump($x->getPointerType()->getKind() === $x::TYPE_VOID); -$x = FFI::type("struct {double x; double y;}"); +$x = $ffi->type("struct {double x; double y;}"); var_dump($x->getKind() === $x::TYPE_STRUCT); var_dump(($x->getAttributes() & $x::ATTR_UNION) != 0); var_dump($x->getStructFieldNames()); @@ -34,7 +36,7 @@ var_dump($x->getStructFieldOffset("y")); var_dump($x->getStructFieldType("x")->getKind() == $x::TYPE_DOUBLE); var_dump($x->getStructFieldType("y")->getKind() == $x::TYPE_DOUBLE); -$x = FFI::type("union {double x; double y;}"); +$x = $ffi->type("union {double x; double y;}"); var_dump($x->getKind() === $x::TYPE_STRUCT); var_dump(($x->getAttributes() & $x::ATTR_UNION) != 0); var_dump($x->getStructFieldNames()); @@ -43,7 +45,7 @@ var_dump($x->getStructFieldOffset("y")); var_dump($x->getStructFieldType("x")->getKind() == $x::TYPE_DOUBLE); var_dump($x->getStructFieldType("y")->getKind() == $x::TYPE_DOUBLE); -$x = FFI::type("void (*)(double,int32_t)"); +$x = $ffi->type("void (*)(double,int32_t)"); var_dump($x->getKind() === $x::TYPE_POINTER); var_dump($x->getPointerType()->getKind() === $x::TYPE_FUNC); var_dump($x->getPointerType()->getFuncReturnType()->getKind() === $x::TYPE_VOID);