diff --git a/src/if_ruby.c b/src/if_ruby.c index cb9b416036..34fc0ed1cb 100644 --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -123,6 +123,10 @@ # define rb_gc_writebarrier_unprotect rb_gc_writebarrier_unprotect_stub #endif +#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 26 +# define rb_ary_detransient (*dll_rb_ary_detransient) +#endif + #include #ifdef RUBY19_OR_LATER # include @@ -455,6 +459,9 @@ static VALUE (*dll_rb_float_new) (double); static VALUE (*dll_rb_ary_new) (void); static VALUE (*dll_rb_ary_new4) (long n, const VALUE *elts); static VALUE (*dll_rb_ary_push) (VALUE, VALUE); +# if DYNAMIC_RUBY_VER >= 26 +static void (*dll_rb_ary_detransient) (VALUE); +# endif # if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) # ifdef __ia64 static void * (*dll_rb_ia64_bsp) (void); @@ -666,6 +673,9 @@ static struct {"rb_ary_new4", (RUBY_PROC*)&dll_rb_ary_new4}, # endif {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push}, +# if DYNAMIC_RUBY_VER >= 26 + {"rb_ary_detransient", (RUBY_PROC*)&dll_rb_ary_detransient}, +# endif # endif # ifdef RUBY19_OR_LATER {"rb_int2big", (RUBY_PROC*)&dll_rb_int2big}, @@ -966,11 +976,8 @@ static int ensure_ruby_initialized(void) static void error_print(int state) { -#ifndef DYNAMIC_RUBY -#if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19) \ - && !(defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19) +#if !defined(DYNAMIC_RUBY) && !defined(RUBY19_OR_LATER) RUBYEXTERN VALUE ruby_errinfo; -#endif #endif VALUE error; VALUE eclass; diff --git a/src/version.c b/src/version.c index 823db356f3..01593eeb8b 100644 --- a/src/version.c +++ b/src/version.c @@ -799,6 +799,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 646, /**/ 645, /**/