]> granicus.if.org Git - vim/commitdiff
patch 8.2.2448: compilation error with Ruby 3.0 v8.2.2448
authorBram Moolenaar <Bram@vim.org>
Mon, 1 Feb 2021 18:31:47 +0000 (19:31 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 1 Feb 2021 18:31:47 +0000 (19:31 +0100)
Problem:    Compilation error with Ruby 3.0.
Solution:   Adjust #ifdefs and declaration. (Ken Takata, closes #7761)

src/if_ruby.c
src/version.c

index a8c8379b62d8d362bab5657a9949cf597751fa2c..1d49d671e40347177266b64bdb4bd7af9556941a 100644 (file)
@@ -436,7 +436,7 @@ static VALUE (*dll_rb_hash_new) (void);
 static VALUE (*dll_rb_inspect) (VALUE);
 static VALUE (*dll_rb_int2inum) (long);
 static ID (*dll_rb_intern) (const char*);
-# if VIM_SIZEOF_INT < VIM_SIZEOF_LONG // 64 bits only
+# if RUBY_VERSION >= 30 || VIM_SIZEOF_INT < VIM_SIZEOF_LONG
 static long (*dll_rb_fix2int) (VALUE);
 static long (*dll_rb_num2int) (VALUE);
 static unsigned long (*dll_rb_num2uint) (VALUE);
@@ -524,7 +524,11 @@ static void (*dll_rb_gc_writebarrier_unprotect)(VALUE obj);
 # endif
 
 # if RUBY_VERSION >= 30
+#  ifdef _MSC_VER
+static void (*dll_ruby_malloc_size_overflow)(size_t, size_t);
+#  else
 NORETURN(static void (*dll_ruby_malloc_size_overflow)(size_t, size_t));
+#  endif
 # endif
 
 # if RUBY_VERSION >= 26
@@ -554,7 +558,7 @@ rb_int2big_stub(SIGNED_VALUE x)
 {
     return dll_rb_int2big(x);
 }
-#   if VIM_SIZEOF_INT < VIM_SIZEOF_LONG
+#   if RUBY_VERSION >= 30 || VIM_SIZEOF_INT < VIM_SIZEOF_LONG
     long
 rb_fix2int_stub(VALUE x)
 {
@@ -612,13 +616,11 @@ rb_check_type_stub(VALUE obj, int t)
 {
     dll_rb_check_type(obj, t);
 }
-#   if VIM_SIZEOF_INT < VIM_SIZEOF_LONG // 64 bits only
     unsigned long
 rb_num2uint_stub(VALUE x)
 {
     return dll_rb_num2uint(x);
 }
-#   endif
     void
 ruby_malloc_size_overflow_stub(size_t x, size_t y)
 {
@@ -695,7 +697,7 @@ static struct
     {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect},
     {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum},
     {"rb_intern", (RUBY_PROC*)&dll_rb_intern},
-# if VIM_SIZEOF_INT < VIM_SIZEOF_LONG // 64 bits only
+# if RUBY_VERSION >= 30 || VIM_SIZEOF_INT < VIM_SIZEOF_LONG
     {"rb_fix2int", (RUBY_PROC*)&dll_rb_fix2int},
     {"rb_num2int", (RUBY_PROC*)&dll_rb_num2int},
     {"rb_num2uint", (RUBY_PROC*)&dll_rb_num2uint},
index 61acfadd4624379520ec17f6b027dfd9f5b7004b..5a8993360039f033c5cf18f9effc04c24e6560f2 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2448,
 /**/
     2447,
 /**/