Ruby 3.5.0dev (2025-06-07 revision 16057041178d3084884693937d6f02e0680e0657)
|
#include <rdata.h>
Data Fields | |
struct RBasic | basic |
Basic part, including flags and class. | |
RUBY_DATA_FUNC | dmark |
This function is called when the object is experiencing GC marks. | |
void * | data |
Pointer to the actual C level struct that you want to wrap. | |
RUBY_DATA_FUNC | dfree |
This function is called when the object is no longer used. | |
Old "untyped" user data. It has roughly the same usage as struct RTypedData, but lacked several features such as support for compaction GC. Use of this struct is not recommended any longer. If it is dead necessary, please inform the core devs about your usage.
struct RBasic RData::basic |
void* RData::data |
Pointer to the actual C level struct that you want to wrap.
This is in between dmark and dfree to allow DATA_PTR to continue to work for both RData and non-embedded RTypedData.
RUBY_DATA_FUNC RData::dfree |
RUBY_DATA_FUNC RData::dmark |
This function is called when the object is experiencing GC marks.
If it contains references to other Ruby objects, you need to mark them also. Otherwise GC will smash your data.