Move FFI::StructByReference to Ruby #681
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See #660.
It's much shorter and more readable in Ruby:
commit 2d09ca5 removes 239 lines of C and add only 39 lines of Ruby.
I don't expect any of this to be performance critical.
None of the benchmarks use
StructByReference
.The C code was anyway basically just calling out to Ruby core methods.
Having it in Ruby also allows inline caching which is not possible in C with MRI.
I splitted StructByReference and StructLayout in their own files to ease code navigation/improve readability and reduce the length of
lib/ffi/struct.rb
.cc @larskanis @tduehr