In Files
- fiddle/lib/fiddle/struct.rb
Parent
Methods
Class/Module Index
- Fiddle
- Fiddle::BasicTypes
- Fiddle::CParser
- Fiddle::CStruct
- Fiddle::CStructBuilder
- Fiddle::CStructEntity
- Fiddle::CUnion
- Fiddle::CUnionEntity
- Fiddle::Closure
- Fiddle::Closure::BlockCaller
- Fiddle::CompositeHandler
- Fiddle::DLError
- Fiddle::Function
- Fiddle::Handle
- Fiddle::Importer
- Fiddle::Pointer
- Fiddle::Win32Types
Fiddle::CUnionEntity
A C union wrapper
Public Class Methods
malloc(types, func=nil)
Allocates a C union the types
provided.
When the instance is garbage collected, the C function func
is
called.
# File fiddle/lib/fiddle/struct.rb, line 217 def CUnionEntity.malloc(types, func=nil) addr = Fiddle.malloc(CUnionEntity.size(types)) CUnionEntity.new(addr, types, func) end
size(types)
Returns the size needed for the union with the given types
.
Fiddle::CUnionEntity.size( [ Fiddle::TYPE_DOUBLE, Fiddle::TYPE_INT, Fiddle::TYPE_CHAR, Fiddle::TYPE_VOIDP ]) #=> 8
# File fiddle/lib/fiddle/struct.rb, line 229 def CUnionEntity.size(types) types.map { |type, count = 1| PackInfo::SIZE_MAP[type] * count }.max end