summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--proc.c14
2 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 34e00b1c29..66d3f7816c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Thu Aug 30 14:06:50 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * proc.c (rb_obj_define_method): reverted. [ruby-talk:266637]
+
Thu Aug 30 13:49:25 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/mkmf.rb: initialize $top_srcdir always. [ruby-dev:31682]
diff --git a/proc.c b/proc.c
index d1e4436bdb..3b6d9a94f4 100644
--- a/proc.c
+++ b/proc.c
@@ -1,6 +1,6 @@
/**********************************************************************
- proc.c - Proc, Bindng, Env
+ proc.c - Proc, Binding, Env
$Author$
$Date$
@@ -148,7 +148,6 @@ binding_alloc(VALUE klass)
rb_binding_t *bind;
obj = Data_Make_Struct(klass, rb_binding_t,
binding_mark, binding_free, bind);
- MEMZERO(bind, rb_binding_t, 1);
return obj;
}
@@ -972,6 +971,14 @@ rb_mod_define_method(int argc, VALUE *argv, VALUE mod)
return body;
}
+static VALUE
+rb_obj_define_method(int argc, VALUE *argv, VALUE obj)
+{
+ VALUE klass = rb_singleton_class(obj);
+
+ return rb_mod_define_method(argc, argv, klass);
+}
+
/*
* MISSING: documentation
@@ -1495,6 +1502,9 @@ Init_Proc(void)
/* Module#*_method */
rb_define_method(rb_cModule, "instance_method", rb_mod_method, 1);
rb_define_private_method(rb_cModule, "define_method", rb_mod_define_method, -1);
+
+ /* Kernel */
+ rb_define_method(rb_mKernel, "define_singleton_method", rb_obj_define_method, -1);
}
/*