Неверный указатель (TypeError) при использовании FFI :: ManagedStruct - PullRequest
2 голосов
/ 26 января 2012

Я пишу библиотеку, используя 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 работает нормально.

...