Mercurial > vim
changeset 15275:b408509d8292 v8.1.0646
patch 8.1.0646: cannot build with Ruby 2.6.0
commit https://github.com/vim/vim/commit/b09c684195d803137d52c34fb4d3a410be5ac10f
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Dec 27 22:11:01 2018 +0100
patch 8.1.0646: cannot build with Ruby 2.6.0
Problem: Cannot build with Ruby 2.6.0.
Solution: Add rb_ary_detransient(). (Ozaki Kiichi, closes https://github.com/vim/vim/issues/3724)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 27 Dec 2018 22:15:04 +0100 |
parents | f47e56455015 |
children | 2979ce4f3451 |
files | src/if_ruby.c src/version.c |
diffstat | 2 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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 <ruby.h> #ifdef RUBY19_OR_LATER # include <ruby/encoding.h> @@ -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,12 +976,9 @@ 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; VALUE einfo;