From 0bd29ba21645e15403ecf72721f0efdd888ea8da 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: svn+ssh://ci.ruby-lang.org/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 3863e685c3..5c2918e082 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 v1.2.3