diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval.c | 3 | ||||
-rw-r--r-- | math.c | 23 |
3 files changed, 8 insertions, 23 deletions
@@ -1,3 +1,8 @@ +Sat Sep 4 01:14:57 2004 Yukihiro Matsumoto <matz@ruby-lang.org> + + * eval.c (cvar_cbase): class variables cause SEGV in + instance_eval() for fixnums and symbols. [ruby-dev:24213] + Fri Sep 3 17:47:58 2004 Yukihiro Matsumoto <matz@ruby-lang.org> * struct.c (make_struct): remove redefining constant when @@ -1779,6 +1779,9 @@ cvar_cbase() rb_warn("class variable access from toplevel singleton method"); } } + if (NIL_P(cref->nd_clss)) { + rb_raise(rb_eTypeError, "no class variables available"); + } return cref->nd_clss; } @@ -333,28 +333,6 @@ math_log(obj, x) /* * call-seq: - * Math.log2(numeric) => float - * - * Returns the base 2 logarithm of <i>numeric</i>. - */ - -static VALUE -math_log2(obj, x) - VALUE obj, x; -{ - double d; - - Need_Float(x); - errno = 0; - d = log2(RFLOAT(x)->value); - if (errno) { - rb_sys_fail("log2"); - } - return rb_float_new(d); -} - -/* - * call-seq: * Math.log10(numeric) => float * * Returns the base 10 logarithm of <i>numeric</i>. @@ -533,7 +511,6 @@ Init_Math() rb_define_module_function(rb_mMath, "exp", math_exp, 1); rb_define_module_function(rb_mMath, "log", math_log, 1); - rb_define_module_function(rb_mMath, "log2", math_log, 1); rb_define_module_function(rb_mMath, "log10", math_log10, 1); rb_define_module_function(rb_mMath, "sqrt", math_sqrt, 1); |