]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.168 v7.4.168
authorBram Moolenaar <Bram@vim.org>
Wed, 5 Feb 2014 21:41:15 +0000 (22:41 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 5 Feb 2014 21:41:15 +0000 (22:41 +0100)
Problem:    Can't compile with Ruby 2.1.0.
Solution:   Add support for new GC. (Kohei Suzuki)

src/if_ruby.c
src/version.c

index 44fd5ee42d8d149ecbe9ffb7d2db1b3eb838b39f..9343ec8b2fce37318306719905adc96416d0750f 100644 (file)
 # define rb_num2int rb_num2int_stub
 #endif
 
+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 21
+/* Ruby 2.1 adds new GC called RGenGC and RARRAY_PTR uses
+ * rb_gc_writebarrier_unprotect_promoted if USE_RGENGC  */
+#  define rb_gc_writebarrier_unprotect_promoted rb_gc_writebarrier_unprotect_promoted_stub
+# endif
+
 #include <ruby.h>
 #ifdef RUBY19_OR_LATER
 # include <ruby/encoding.h>
@@ -373,6 +379,10 @@ static VALUE (*dll_rb_require) (const char*);
 static void* (*ruby_process_options)(int, char**);
 # endif
 
+# if defined(USE_RGENGC) && USE_RGENGC
+static void (*dll_rb_gc_writebarrier_unprotect_promoted)(VALUE);
+# endif
+
 # if defined(RUBY19_OR_LATER) && !defined(PROTO)
 SIGNED_VALUE rb_num2long_stub(VALUE x)
 {
@@ -406,6 +416,13 @@ VALUE rb_num2ulong(VALUE x)
 #  endif
 # endif
 
+# if defined(USE_RGENGC) && USE_RGENGC
+void rb_gc_writebarrier_unprotect_promoted_stub(VALUE obj)
+{
+    return dll_rb_gc_writebarrier_unprotect_promoted(obj);
+}
+# endif
+
 static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */
 
 /*
@@ -520,6 +537,9 @@ static struct
     {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp},
 #  endif
     {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
+# endif
+# if defined(USE_RGENGC) && USE_RGENGC
+    {"rb_gc_writebarrier_unprotect_promoted", (RUBY_PROC*)&dll_rb_gc_writebarrier_unprotect_promoted},
 # endif
     {"", NULL},
 };
index 81639c9be21180c58433c3035b28c8eccd145a9a..8ebab00ef0ad90699ccef9a4a2b7748a20b9798e 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    168,
 /**/
     167,
 /**/