gh8433.phpt 426 B

123456789101112131415161718192021222324
  1. --TEST--
  2. GH-8433 (Assigning function pointers to structs in FFI leaks memory)
  3. --EXTENSIONS--
  4. ffi
  5. --INI--
  6. ffi.enable=1
  7. --FILE--
  8. <?php
  9. $ffi = FFI::cdef("typedef struct { int a; } bar;");
  10. $x = $ffi->new("bar(*)(void)");
  11. FFI::addr($x)[0] = function() use ($ffi) {
  12. $bar = $ffi->new("bar");
  13. $bar->a = 2;
  14. return $bar;
  15. };
  16. var_dump($x());
  17. ?>
  18. --EXPECTF--
  19. object(FFI\CData:struct <anonymous>)#%d (1) {
  20. ["a"]=>
  21. int(2)
  22. }