# HG changeset patch # User Christian Brabandt # Date 1465677006 -7200 # Node ID 97b0b568f8203804ed36f7086631a49a4215fe9d # Parent 68aa58daaf7f1af9fe1c8cb0186c556321d2bf99 commit https://github.com/vim/vim/commit/06469e979fe524ac6cb8f705ed4221aa267de11d Author: Bram Moolenaar Date: Sat Jun 11 22:26:53 2016 +0200 patch 7.4.1922 Problem: Ruby 2.4.0 unifies Fixnum and Bignum into Integer. Solution: Use rb_cInteger. (Weiong Mao) diff --git a/src/if_ruby.c b/src/if_ruby.c --- 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 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1922, +/**/ 1921, /**/ 1920,