From 06469e979fe524ac6cb8f705ed4221aa267de11d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 11 Jun 2016 22:26:53 +0200 Subject: patch 7.4.1922 Problem: Ruby 2.4.0 unifies Fixnum and Bignum into Integer. Solution: Use rb_cInteger. (Weiong Mao) --- src/if_ruby.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/if_ruby.c') diff --git a/src/if_ruby.c b/src/if_ruby.c index 90e814ec12..7e49906b6a 100644 --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -31,6 +31,10 @@ # define RUBYEXTERN extern #endif +# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 24 + # define USE_RUBY_Integer +#endif + #ifdef DYNAMIC_RUBY /* * This is tricky. In ruby.h there is (inline) function rb_class_of() @@ -39,6 +43,9 @@ */ # define rb_cFalseClass (*dll_rb_cFalseClass) # define rb_cFixnum (*dll_rb_cFixnum) +# if defined(USE_RUBY_Integer) +# define rb_cInteger (*dll_rb_cInteger) +# endif # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 # define rb_cFloat (*dll_rb_cFloat) # endif @@ -318,6 +325,9 @@ static void ruby_vim_init(void); static VALUE (*dll_rb_assoc_new) (VALUE, VALUE); VALUE *dll_rb_cFalseClass; VALUE *dll_rb_cFixnum; +# if defined(USE_RUBY_Integer) +VALUE *dll_rb_cInteger; +# endif # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 VALUE *dll_rb_cFloat; # endif @@ -505,6 +515,9 @@ static struct {"rb_assoc_new", (RUBY_PROC*)&dll_rb_assoc_new}, {"rb_cFalseClass", (RUBY_PROC*)&dll_rb_cFalseClass}, {"rb_cFixnum", (RUBY_PROC*)&dll_rb_cFixnum}, +# if defined(USE_RUBY_Integer) + {"rb_cInteger", (RUBY_PROC*)&dll_rb_cInteger}, +# endif # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 {"rb_cFloat", (RUBY_PROC*)&dll_rb_cFloat}, # endif -- cgit v1.2.3