summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-06-11 22:26:53 +0200
committerBram Moolenaar <Bram@vim.org>2016-06-11 22:26:53 +0200
commit06469e979fe524ac6cb8f705ed4221aa267de11d (patch)
treece8c06e78fe2b30c603c64a2a093c25094c50565
parent724f2edf75bf084665b3e2cdfa7ab66ccb1b5c0c (diff)
downloadvim-git-06469e979fe524ac6cb8f705ed4221aa267de11d.tar.gz
patch 7.4.1922v7.4.1922
Problem: Ruby 2.4.0 unifies Fixnum and Bignum into Integer. Solution: Use rb_cInteger. (Weiong Mao)
-rw-r--r--src/if_ruby.c13
-rw-r--r--src/version.c2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/if_ruby.c b/src/if_ruby.c
index 90e814ec1..7e49906b6 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
diff --git a/src/version.c b/src/version.c
index 6dc2efb57..39e70e57d 100644
--- 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,