cObj = $cObj; } /** * Mark backing C object as freed */ public function freed() { $this->freed = true; } /** * Free backing C object, object is useless after this operation */ final public function free() { if ($this->freed) { return; } $this->freeObject(); $this->freed(); } protected function freeObject() { FFI::free($this->cObj); } public function __destruct() { $this->free(); } }