* ext/bigdecimal/bigdecimal.c (rb_rational_num): add fallback function

for rubies lower than 2.2.0.

* ext/bigdecimal/bigdecimal.c (rb_rational_den): ditto.

* ext/bigdecimal/extconf.rb: check the existences of struct RRational,
  rb_rational_num, and rb_rational_den.

* ext/bigdecimal/bigdecimal.bundle: bump version.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
mrkn 2015-01-29 14:34:43 +00:00
Родитель 21f6bb283f
Коммит 78400919ba
4 изменённых файлов: 41 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,15 @@
Thu Jan 29 23:30:00 2015 Kenta Murata <mrkn@mrkn.jp>
* ext/bigdecimal/bigdecimal.c (rb_rational_num): add fallback function
for rubies lower than 2.2.0.
* ext/bigdecimal/bigdecimal.c (rb_rational_den): ditto.
* ext/bigdecimal/extconf.rb: check the existences of struct RRational,
rb_rational_num, and rb_rational_den.
* ext/bigdecimal/bigdecimal.bundle: bump version.
Thu Jan 29 20:28:25 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
* tool/make-snapshot: removed md5 digest with package infomation

Просмотреть файл

@ -109,6 +109,30 @@ static ID id_eq;
# define RB_OBJ_STRING(obj) StringValueCStr(obj)
#endif
#ifndef HAVE_RB_RATIONAL_NUM
static inline VALUE
rb_rational_num(VALUE rat)
{
#ifdef HAVE_TYPE_STRUCT_RRATIONAL
return RRATIONAL(rat)->num;
#else
return rb_funcall(rat, rb_intern("numerator"));
#endif
}
#endif
#ifndef HAVE_RB_RATIONAL_DEN
static inline VALUE
rb_rational_den(VALUE rat)
{
#ifdef HAVE_TYPE_STRUCT_RRATIONAL
return RRATIONAL(rat)->den;
#else
return rb_funcall(rat, rb_intern("denominator"));
#endif
}
#endif
/*
* ================== Ruby Interface part ==========================
*/

Просмотреть файл

@ -1,5 +1,5 @@
# -*- ruby -*-
_VERSION = "1.2.6"
_VERSION = "1.2.7"
date = %w$Date:: $[1]
Gem::Specification.new do |s|

Просмотреть файл

@ -3,4 +3,8 @@ require 'mkmf'
have_func("labs", "stdlib.h")
have_func("llabs", "stdlib.h")
have_type("struct RRational", "ruby.h")
have_func("rb_rational_num", "ruby.h")
have_func("rb_rational_den", "ruby.h")
create_makefile('bigdecimal')