Ruby 4.1.0dev (2026-09-07 revision b57404b461ba8bf34e802d86b0db78388216e182)
rdata.h
Go to the documentation of this file.
1#ifndef RBIMPL_RDATA_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_RDATA_H
23#include "ruby/internal/config.h"
24
25#ifdef STDC_HEADERS
26# include <stddef.h>
27#endif
28
31#include "ruby/internal/cast.h"
35#include "ruby/internal/value.h"
37#include "ruby/defines.h"
38
40#ifndef RUBY_UNTYPED_DATA_WARNING
41#define RUBY_UNTYPED_DATA_WARNING 1
42#endif
43
44#define RBIMPL_DATA_FUNC(f) RBIMPL_CAST((void (*)(void *))(f))
56#define RUBY_DEFAULT_FREE RBIMPL_DATA_FUNC(-1)
57
63#define RUBY_NEVER_FREE RBIMPL_DATA_FUNC(0)
64
69typedef void (*RUBY_DATA_FUNC)(void*);
70
77struct RData {
78 struct RBasic basic;
79 VALUE fields_obj;
80 VALUE _reserved;
81 void *data;
82 RUBY_DATA_FUNC dmark;
83 RUBY_DATA_FUNC dfree;
84};
85
86#endif /* RBIMPL_RDATA_H */
Defines RBIMPL_ATTR_WARNING.
Defines RBIMPL_ATTR_DEPRECATED.
Tweaking visibility of C variables/functions.
Defines enum ruby_fl_type.
Defines struct RBasic.
void(* RUBY_DATA_FUNC)(void *)
This is the type of callbacks registered to RData.
Definition rdata.h:69
Ruby object's base components.
Definition rbasic.h:69
Definition rdata.h:77
Defines VALUE and ID.
uintptr_t VALUE
Type that represents a Ruby object.
Definition value.h:40
Defines enum ruby_value_type.