ruby-changes:3923
From: ko1@a...
Date: Sat, 9 Feb 2008 11:48:06 +0900 (JST)
Subject: [ruby-changes:3923] akr - Ruby:r15413 (trunk): * math.c (math_gamma): add error check.
akr 2008-02-09 11:47:50 +0900 (Sat, 09 Feb 2008) New Revision: 15413 Modified files: trunk/ChangeLog trunk/math.c Log: * math.c (math_gamma): add error check. (math_lgamma): ditto. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/math.c?r1=15413&r2=15412&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15413&r2=15412&diff_format=u Index: math.c =================================================================== --- math.c (revision 15412) +++ math.c (revision 15413) @@ -530,8 +530,12 @@ static VALUE math_gamma(VALUE obj, VALUE x) { + double d; Need_Float(x); - return DOUBLE2NUM(tgamma(RFLOAT_VALUE(x))); + errno = 0; + d = tgamma(RFLOAT_VALUE(x)); + domain_check(d, "gamma"); + return DOUBLE2NUM(d); } /* @@ -549,10 +553,14 @@ static VALUE math_lgamma(VALUE obj, VALUE x) { + double d; int sign; VALUE v; Need_Float(x); - v = DOUBLE2NUM(lgamma_r(RFLOAT_VALUE(x), &sign)); + errno = 0; + d = lgamma_r(RFLOAT_VALUE(x), &sign); + domain_check(d, "lgamma"); + v = DOUBLE2NUM(d); return rb_assoc_new(v, INT2FIX(sign)); } Index: ChangeLog =================================================================== --- ChangeLog (revision 15412) +++ ChangeLog (revision 15413) @@ -1,3 +1,8 @@ +Sat Feb 9 11:47:03 2008 Tanaka Akira <akr@f...> + + * math.c (math_gamma): add error check. + (math_lgamma): ditto. + Sat Feb 9 11:09:26 2008 Tanaka Akira <akr@f...> * missing/lgamma_r.c (lgamma_r): return HUGE_VAL for non-positive -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/