Я пишу библиотеку, используя Ruby-FFI, и хочу воспользоваться функциональностью очистки, предлагаемой FFI :: ManagedStruct.
Я заменяю, например, MyStruct < FFI::Struct
на MyStruct < FFI::ManagedStruct
и добавляю def self.release(ptr)
согласно документации .Однако при запуске моего кода сейчас я получаю эту ошибку:
[...]autopointer.rb:68:in `initialize': Invalid pointer (TypeError)
Это происходит, когда я пытаюсь вызвать функцию, объявленную с attach_function, передавая FFI::MemoryPointer
в рассматриваемой структуре.При использовании FFI::Struct
работает нормально.