ruby-changes:62142
From: Kenta <ko1@a...>
Date: Mon, 6 Jul 2020 08:56:25 +0900 (JST)
Subject: [ruby-changes:62142] 40b82afe6a (master): [ruby/bigdecimal] Support Ruby < 2.6
https://git.ruby-lang.org/ruby.git/commit/?id=40b82afe6a From 40b82afe6a20749a375d36ce17e941e890ef8b0e Mon Sep 17 00:00:00 2001 From: Kenta Murata <mrkn@m...> Date: Wed, 9 Oct 2019 10:50:59 +0900 Subject: [ruby/bigdecimal] Support Ruby < 2.6 https://github.com/ruby/bigdecimal/commit/61ec452599 diff --git a/ext/bigdecimal/bigdecimal.c b/ext/bigdecimal/bigdecimal.c index 5d0fc85..3800152 100644 --- a/ext/bigdecimal/bigdecimal.c +++ b/ext/bigdecimal/bigdecimal.c @@ -128,6 +128,30 @@ rb_rational_den(VALUE rat) https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/bigdecimal.c#L128 } #endif +#ifndef HAVE_RB_COMPLEX_REAL +static inline VALUE +rb_complex_real(VALUE cmp) +{ +#ifdef HAVE_TYPE_STRUCT_RCOMPLEX + return RCOMPLEX(cmp)->real; +#else + return rb_funcall(cmp, rb_intern("real"), 0); +#endif +} +#endif + +#ifndef HAVE_RB_COMPLEX_IMAG +static inline VALUE +rb_complex_imag(VALUE cmp) +{ +#ifdef HAVE_TYPE_STRUCT_RCOMPLEX + return RCOMPLEX(cmp)->imag; +#else + return rb_funcall(cmp, rb_intern("imag"), 0); +#endif +} +#endif + #define BIGDECIMAL_POSITIVE_P(bd) ((bd)->sign > 0) #define BIGDECIMAL_NEGATIVE_P(bd) ((bd)->sign < 0) diff --git a/ext/bigdecimal/extconf.rb b/ext/bigdecimal/extconf.rb index b4098fd..fc448ed 100644 --- a/ext/bigdecimal/extconf.rb +++ b/ext/bigdecimal/extconf.rb @@ -36,6 +36,9 @@ have_func("isfinite", "math.h") https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/extconf.rb#L36 have_type("struct RRational", "ruby.h") have_func("rb_rational_num", "ruby.h") have_func("rb_rational_den", "ruby.h") +have_type("struct RComplex", "ruby.h") +have_func("rb_complex_real", "ruby.h") +have_func("rb_complex_imag", "ruby.h") have_func("rb_array_const_ptr", "ruby.h") have_func("rb_sym2str", "ruby.h") have_func("rb_opts_exception_p", "ruby.h") -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/