xref: /PHP-8.0/ext/ffi/tests/036.phpt (revision f8d79582)
1--TEST--
2FFI 036: Type memory management
3--SKIPIF--
4<?php require_once('skipif.inc'); ?>
5--INI--
6ffi.enable=1
7--FILE--
8<?php
9$type = FFI::type("int*");
10
11function foo($ptr) {
12    global $type;
13    //$buf = FFI::new("int*[1]"); /* this loses type and crash */
14    $buf = FFI::new(FFI::arrayType($type, [1]));
15    $buf[0] = $ptr;
16    //...
17    return $buf[0];
18}
19
20$int = FFI::new("int");
21$int->cdata = 42;
22var_dump(foo(FFI::addr($int)));
23?>
24--EXPECTF--
25object(FFI\CData:int32_t*)#%d (1) {
26  [0]=>
27  int(42)
28}
29