Karsten Hopp 1aebcf
To: vim_dev@googlegroups.com
Karsten Hopp 1aebcf
Subject: Patch 7.4.570
Karsten Hopp 1aebcf
Fcc: outbox
Karsten Hopp 1aebcf
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 1aebcf
Mime-Version: 1.0
Karsten Hopp 1aebcf
Content-Type: text/plain; charset=UTF-8
Karsten Hopp 1aebcf
Content-Transfer-Encoding: 8bit
Karsten Hopp 1aebcf
------------
Karsten Hopp 1aebcf
Karsten Hopp 1aebcf
Patch 7.4.570
Karsten Hopp 1aebcf
Problem:    Building with dynamic library does not work for Ruby 2.2.0
Karsten Hopp 1aebcf
Solution:   Change #ifdefs and #defines. (Ken Takata)
Karsten Hopp 1aebcf
Files:	    src/if_ruby.c
Karsten Hopp 1aebcf
Karsten Hopp 1aebcf
Karsten Hopp 1aebcf
*** ../vim-7.4.569/src/if_ruby.c	2014-11-27 17:44:05.376820913 +0100
Karsten Hopp 1aebcf
--- src/if_ruby.c	2015-01-14 14:02:59.680115042 +0100
Karsten Hopp 1aebcf
***************
Karsten Hopp 1aebcf
*** 96,106 ****
Karsten Hopp 1aebcf
  # define rb_num2int rb_num2int_stub
Karsten Hopp 1aebcf
  #endif
Karsten Hopp 1aebcf
  
Karsten Hopp 1aebcf
! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 21
Karsten Hopp 1aebcf
  /* Ruby 2.1 adds new GC called RGenGC and RARRAY_PTR uses
Karsten Hopp 1aebcf
   * rb_gc_writebarrier_unprotect_promoted if USE_RGENGC  */
Karsten Hopp 1aebcf
  # define rb_gc_writebarrier_unprotect_promoted rb_gc_writebarrier_unprotect_promoted_stub
Karsten Hopp 1aebcf
  #endif
Karsten Hopp 1aebcf
  
Karsten Hopp 1aebcf
  #include <ruby.h>
Karsten Hopp 1aebcf
  #ifdef RUBY19_OR_LATER
Karsten Hopp 1aebcf
--- 96,110 ----
Karsten Hopp 1aebcf
  # define rb_num2int rb_num2int_stub
Karsten Hopp 1aebcf
  #endif
Karsten Hopp 1aebcf
  
Karsten Hopp 1aebcf
! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER == 21
Karsten Hopp 1aebcf
  /* Ruby 2.1 adds new GC called RGenGC and RARRAY_PTR uses
Karsten Hopp 1aebcf
   * rb_gc_writebarrier_unprotect_promoted if USE_RGENGC  */
Karsten Hopp 1aebcf
  # define rb_gc_writebarrier_unprotect_promoted rb_gc_writebarrier_unprotect_promoted_stub
Karsten Hopp 1aebcf
  #endif
Karsten Hopp 1aebcf
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 22
Karsten Hopp 1aebcf
+ # define rb_gc_writebarrier_unprotect rb_gc_writebarrier_unprotect_stub
Karsten Hopp 1aebcf
+ # define rb_check_type rb_check_type_stub
Karsten Hopp 1aebcf
+ #endif
Karsten Hopp 1aebcf
  
Karsten Hopp 1aebcf
  #include <ruby.h>
Karsten Hopp 1aebcf
  #ifdef RUBY19_OR_LATER
Karsten Hopp 1aebcf
***************
Karsten Hopp 1aebcf
*** 180,186 ****
Karsten Hopp 1aebcf
   */
Karsten Hopp 1aebcf
  # define rb_assoc_new			dll_rb_assoc_new
Karsten Hopp 1aebcf
  # define rb_cObject			(*dll_rb_cObject)
Karsten Hopp 1aebcf
! # define rb_check_type			dll_rb_check_type
Karsten Hopp 1aebcf
  # define rb_class_path			dll_rb_class_path
Karsten Hopp 1aebcf
  # define rb_data_object_alloc		dll_rb_data_object_alloc
Karsten Hopp 1aebcf
  # define rb_define_class_under		dll_rb_define_class_under
Karsten Hopp 1aebcf
--- 184,192 ----
Karsten Hopp 1aebcf
   */
Karsten Hopp 1aebcf
  # define rb_assoc_new			dll_rb_assoc_new
Karsten Hopp 1aebcf
  # define rb_cObject			(*dll_rb_cObject)
Karsten Hopp 1aebcf
! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 22
Karsten Hopp 1aebcf
! #  define rb_check_type			dll_rb_check_type
Karsten Hopp 1aebcf
! # endif
Karsten Hopp 1aebcf
  # define rb_class_path			dll_rb_class_path
Karsten Hopp 1aebcf
  # define rb_data_object_alloc		dll_rb_data_object_alloc
Karsten Hopp 1aebcf
  # define rb_define_class_under		dll_rb_define_class_under
Karsten Hopp 1aebcf
***************
Karsten Hopp 1aebcf
*** 382,388 ****
Karsten Hopp 1aebcf
--- 388,398 ----
Karsten Hopp 1aebcf
  # endif
Karsten Hopp 1aebcf
  
Karsten Hopp 1aebcf
  # if defined(USE_RGENGC) && USE_RGENGC
Karsten Hopp 1aebcf
+ #  if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER == 21
Karsten Hopp 1aebcf
  static void (*dll_rb_gc_writebarrier_unprotect_promoted)(VALUE);
Karsten Hopp 1aebcf
+ #  else
Karsten Hopp 1aebcf
+ static void (*dll_rb_gc_writebarrier_unprotect)(VALUE obj);
Karsten Hopp 1aebcf
+ #  endif
Karsten Hopp 1aebcf
  # endif
Karsten Hopp 1aebcf
  
Karsten Hopp 1aebcf
  # if defined(RUBY19_OR_LATER) && !defined(PROTO)
Karsten Hopp 1aebcf
***************
Karsten Hopp 1aebcf
*** 420,429 ****
Karsten Hopp 1aebcf
--- 430,453 ----
Karsten Hopp 1aebcf
  
Karsten Hopp 1aebcf
     /* Do not generate a prototype here, VALUE isn't always defined. */
Karsten Hopp 1aebcf
  # if defined(USE_RGENGC) && USE_RGENGC && !defined(PROTO)
Karsten Hopp 1aebcf
+ #  if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER == 21
Karsten Hopp 1aebcf
  void rb_gc_writebarrier_unprotect_promoted_stub(VALUE obj)
Karsten Hopp 1aebcf
  {
Karsten Hopp 1aebcf
      dll_rb_gc_writebarrier_unprotect_promoted(obj);
Karsten Hopp 1aebcf
  }
Karsten Hopp 1aebcf
+ #  else
Karsten Hopp 1aebcf
+ void rb_gc_writebarrier_unprotect_stub(VALUE obj)
Karsten Hopp 1aebcf
+ {
Karsten Hopp 1aebcf
+     dll_rb_gc_writebarrier_unprotect(obj);
Karsten Hopp 1aebcf
+ }
Karsten Hopp 1aebcf
+ #  endif
Karsten Hopp 1aebcf
+ # endif
Karsten Hopp 1aebcf
+ 
Karsten Hopp 1aebcf
+ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 22
Karsten Hopp 1aebcf
+ void rb_check_type_stub(VALUE v, int i)
Karsten Hopp 1aebcf
+ {
Karsten Hopp 1aebcf
+     dll_rb_check_type(v, i);
Karsten Hopp 1aebcf
+ }
Karsten Hopp 1aebcf
  # endif
Karsten Hopp 1aebcf
  
Karsten Hopp 1aebcf
  static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */
Karsten Hopp 1aebcf
***************
Karsten Hopp 1aebcf
*** 542,548 ****
Karsten Hopp 1aebcf
--- 566,576 ----
Karsten Hopp 1aebcf
      {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
Karsten Hopp 1aebcf
  # endif
Karsten Hopp 1aebcf
  # if defined(USE_RGENGC) && USE_RGENGC
Karsten Hopp 1aebcf
+ #  if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER == 21
Karsten Hopp 1aebcf
      {"rb_gc_writebarrier_unprotect_promoted", (RUBY_PROC*)&dll_rb_gc_writebarrier_unprotect_promoted},
Karsten Hopp 1aebcf
+ #  else
Karsten Hopp 1aebcf
+     {"rb_gc_writebarrier_unprotect", (RUBY_PROC*)&dll_rb_gc_writebarrier_unprotect},
Karsten Hopp 1aebcf
+ #  endif
Karsten Hopp 1aebcf
  # endif
Karsten Hopp 1aebcf
      {"", NULL},
Karsten Hopp 1aebcf
  };
Karsten Hopp 1aebcf
*** ../vim-7.4.569/src/version.c	2015-01-14 12:44:38.407422077 +0100
Karsten Hopp 1aebcf
--- src/version.c	2015-01-14 14:02:53.868178396 +0100
Karsten Hopp 1aebcf
***************
Karsten Hopp 1aebcf
*** 743,744 ****
Karsten Hopp 1aebcf
--- 743,746 ----
Karsten Hopp 1aebcf
  {   /* Add new patch number below this line */
Karsten Hopp 1aebcf
+ /**/
Karsten Hopp 1aebcf
+     570,
Karsten Hopp 1aebcf
  /**/
Karsten Hopp 1aebcf
Karsten Hopp 1aebcf
-- 
Karsten Hopp 1aebcf
hundred-and-one symptoms of being an internet addict:
Karsten Hopp 1aebcf
89. In addition to your e-mail address being on your business
Karsten Hopp 1aebcf
    cards you even have your own domain.
Karsten Hopp 1aebcf
Karsten Hopp 1aebcf
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 1aebcf
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 1aebcf
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
Karsten Hopp 1aebcf
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///