summaryrefslogtreecommitdiff
path: root/mnv/src/if_ruby.c
diff options
context:
space:
mode:
Diffstat (limited to 'mnv/src/if_ruby.c')
-rw-r--r--mnv/src/if_ruby.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/mnv/src/if_ruby.c b/mnv/src/if_ruby.c
index 796c074664..b6c950ba58 100644
--- a/mnv/src/if_ruby.c
+++ b/mnv/src/if_ruby.c
@@ -103,6 +103,10 @@
# define rb_unexpected_type rb_unexpected_type_stub
# endif
+# if RUBY_VERSION >= 34
+# define rb_data_object_wrap rb_data_object_wrap_stub
+# endif
+
#endif // ifdef DYNAMIC_RUBY
// On macOS pre-installed Ruby defines "SIZEOF_TIME_T" as "SIZEOF_LONG" so it
@@ -500,6 +504,10 @@ NORETURN(static void (*dll_ruby_malloc_size_overflow)(size_t, size_t));
# endif
# endif
+# if RUBY_VERSION >= 34
+static VALUE (*dll_rb_data_object_wrap)(VALUE, void*, RUBY_DATA_FUNC, RUBY_DATA_FUNC);
+# endif
+
# if RUBY_VERSION >= 26 && RUBY_VERSION <= 32
void rb_ary_detransient_stub(VALUE x);
# endif
@@ -606,6 +614,13 @@ rb_unexpected_type_stub(VALUE self, int t)
dll_rb_unexpected_type(self, t);
}
# endif
+# if RUBY_VERSION >= 34
+ VALUE
+rb_data_object_wrap_stub(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)
+{
+ return dll_rb_data_object_wrap(klass, datap, dmark, dfree);
+}
+# endif
# ifdef USE_TYPEDDATA
void *rb_check_typeddata_stub(VALUE obj, const rb_data_type_t *data_type)
{
@@ -658,6 +673,9 @@ static struct
# if RUBY_VERSION >= 31
{"rb_debug_rstring_null_ptr", (RUBY_PROC*)&dll_rb_debug_rstring_null_ptr},
# endif
+# if RUBY_VERSION >= 34
+ {"rb_data_object_wrap", (RUBY_PROC*)&dll_rb_data_object_wrap},
+# endif
{"rb_define_class_under", (RUBY_PROC*)&dll_rb_define_class_under},
{"rb_define_const", (RUBY_PROC*)&dll_rb_define_const},
{"rb_define_global_function", (RUBY_PROC*)&dll_rb_define_global_function},