# HG changeset patch # User Bram Moolenaar # Date 1365949143 -7200 # Node ID cb0c694517a08f1f8f548f0771e874537a390dd4 # Parent 9b772e48f79ea98422c788e444ab5773d26e0aa5 updated for version 7.3.889 Problem: Can't build with Ruby 2.0 on a 64 bit system. Solution: Define rb_fix2int and rb_num2int. (Kohei Suzuki) diff --git a/src/if_ruby.c b/src/if_ruby.c --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -88,6 +88,14 @@ # define rb_int2big rb_int2big_stub #endif +#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ + && SIZEOF_INT < SIZEOF_LONG +/* Ruby 2.0 defines a number of static functions which use rb_fix2int and + * rb_num2int if SIZEOF_INT < SIZEOF_LONG (64bit) */ +# define rb_fix2int rb_fix2int_stub +# define rb_num2int rb_num2int_stub +#endif + #include #ifdef RUBY19_OR_LATER # include @@ -352,6 +360,17 @@ VALUE rb_int2big_stub(SIGNED_VALUE x) { return dll_rb_int2big(x); } +#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ + && SIZEOF_INT < SIZEOF_LONG +long rb_fix2int_stub(VALUE x) +{ + return dll_rb_fix2int(x); +} +long rb_num2int_stub(VALUE x) +{ + return dll_rb_num2int(x); +} +#endif #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 VALUE rb_float_new_in_heap(double d) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 889, +/**/ 888, /**/ 887,