From ff0f7a7651373d33275b26881d5aa89b4750c98a Mon Sep 17 00:00:00 2001 From: tadf Date: Sun, 28 Jun 2009 14:39:31 +0000 Subject: * complex.c (nucomp_div): raises ZeroDivisionError immediately when the given second argument is zero. * rational.c (nurat_fdiv): never raise even if the given second argument is zero. * rational.c (rb_raise_zerodiv): changed the message (zero to 0). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- complex.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'complex.c') diff --git a/complex.c b/complex.c index 3863e685c..5c2918e08 100644 --- a/complex.c +++ b/complex.c @@ -727,6 +727,8 @@ f_divide(VALUE self, VALUE other, return rb_num_coerce_bin(self, other, id); } +#define rb_raise_zerodiv() rb_raise(rb_eZeroDivError, "divided by 0") + /* * call-seq: * cmp / numeric -> complex @@ -742,6 +744,8 @@ f_divide(VALUE self, VALUE other, static VALUE nucomp_div(VALUE self, VALUE other) { + if (f_zero_p(other)) + rb_raise_zerodiv(); return f_divide(self, other, f_quo, id_quo); } -- cgit