summaryrefslogtreecommitdiff
path: root/class.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-22 08:32:48 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-22 08:32:48 +0000
commit8189c8146b673ca9067cfa56e827f252968fe231 (patch)
tree12282fdb00668ffb134a15e01819c31478d9f719 /class.c
parent6e8189235c9af616e85905eb6f74e3142c466c04 (diff)
initialize made private
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@44 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'class.c')
-rw-r--r--class.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/class.c b/class.c
index 13c9298c1c..6f6a9bc5b8 100644
--- a/class.c
+++ b/class.c
@@ -419,25 +419,29 @@ rb_define_method(klass, name, func, argc)
VALUE (*func)();
int argc;
{
- rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), NOEX_PUBLIC);
+ ID id = rb_intern(name);
+
+ rb_add_method(klass, id, NEW_CFUNC(func, argc),
+ (name[0] == 'i' && id == rb_intern("initialize"))?
+ NOEX_PRIVATE:NOEX_PUBLIC);
}
void
-rb_undef_method(klass, name)
+rb_define_private_method(klass, name, func, argc)
VALUE klass;
char *name;
+ VALUE (*func)();
+ int argc;
{
- rb_add_method(klass, rb_intern(name), 0, NOEX_PUBLIC);
+ rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), NOEX_PRIVATE);
}
void
-rb_define_private_method(klass, name, func, argc)
+rb_undef_method(klass, name)
VALUE klass;
char *name;
- VALUE (*func)();
- int argc;
{
- rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), NOEX_PRIVATE);
+ rb_add_method(klass, rb_intern(name), 0, NOEX_PUBLIC);
}
VALUE