diff --git a/src/if_ruby.c b/src/if_ruby.c index 49fdc34dd5..913936174a 100644 --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -73,6 +73,11 @@ # define rb_num2int rb_num2int_stub # endif +# if RUBY_VERSION >= 20 +// USE_TYPEDDATA is not defined yet. We just check for 2.0. +# define rb_check_typeddata rb_check_typeddata_stub +#endif + # if RUBY_VERSION == 21 // Ruby 2.1 adds new GC called RGenGC and RARRAY_PTR uses // rb_gc_writebarrier_unprotect_promoted if USE_RGENGC @@ -243,12 +248,6 @@ static int ruby_convert_to_vim_value(VALUE val, typval_T *rettv); # if RUBY_VERSION < 30 # define rb_check_type dll_rb_check_type # endif -# ifdef USE_TYPEDDATA -# if RUBY_VERSION >= 40 -# define rbimpl_check_typeddata dll_rbimpl_check_typeddata -# endif -# define rb_check_typeddata dll_rb_check_typeddata -# endif # define rb_class_path dll_rb_class_path # ifdef USE_TYPEDDATA # if RUBY_VERSION >= 23 @@ -376,9 +375,6 @@ VALUE *dll_rb_cTrueClass; static VALUE (*dll_rb_class_new_instance) (int,VALUE*,VALUE); static void (*dll_rb_check_type) (VALUE,int); # ifdef USE_TYPEDDATA -# if RUBY_VERSION >= 40 -static void *(*dll_rbimpl_check_typeddata) (VALUE,const rb_data_type_t *); -# endif static void *(*dll_rb_check_typeddata) (VALUE,const rb_data_type_t *); # endif static VALUE (*dll_rb_class_path) (VALUE); @@ -607,6 +603,12 @@ rb_unexpected_type_stub(VALUE self, int t) dll_rb_unexpected_type(self, t); } # endif +# ifdef USE_TYPEDDATA +void *rb_check_typeddata_stub(VALUE obj, const rb_data_type_t *data_type) +{ + return dll_rb_check_typeddata(obj, data_type); +} +# endif # endif // ifndef PROTO static HINSTANCE hinstRuby = NULL; // Instance of ruby.dll diff --git a/src/version.c b/src/version.c index 76b823a31e..99804297ef 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2039, /**/ 2038, /**/