mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
initialize made private
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@44 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6e8189235c
commit
8189c8146b
5 changed files with 23 additions and 15 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,10 @@
|
|||
Thu Jan 22 00:37:47 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||
|
||||
* class.c (rb_define_method): `initialize' should always be
|
||||
private, even if it defined by C extensions.
|
||||
|
||||
* eval.c (rb_eval): `initialize' should always be private.
|
||||
|
||||
Thu Jan 22 16:21:08 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||
|
||||
* eval.c (rb_eval): some singleton class def cause SEGV.
|
||||
|
@ -10,7 +17,8 @@ Wed Jan 21 01:43:42 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
|
|||
* eval.c (PUSH_FRAME): do not use ALLOCA_N(). crash on some
|
||||
platforms that use missing/alloca.c.
|
||||
|
||||
* regex.c (re_compile_pattern): too many pops for non register subexpr.
|
||||
* regex.c (re_compile_pattern): too many pops for non register
|
||||
subexpr.
|
||||
|
||||
* parse.y (yylex): open parentheses after identifiers are argument
|
||||
list, even if whitespaces have seen.
|
||||
|
|
20
class.c
20
class.c
|
@ -419,15 +419,11 @@ 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);
|
||||
|
||||
void
|
||||
rb_undef_method(klass, name)
|
||||
VALUE klass;
|
||||
char *name;
|
||||
{
|
||||
rb_add_method(klass, rb_intern(name), 0, NOEX_PUBLIC);
|
||||
rb_add_method(klass, id, NEW_CFUNC(func, argc),
|
||||
(name[0] == 'i' && id == rb_intern("initialize"))?
|
||||
NOEX_PRIVATE:NOEX_PUBLIC);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -440,6 +436,14 @@ rb_define_private_method(klass, name, func, argc)
|
|||
rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), NOEX_PRIVATE);
|
||||
}
|
||||
|
||||
void
|
||||
rb_undef_method(klass, name)
|
||||
VALUE klass;
|
||||
char *name;
|
||||
{
|
||||
rb_add_method(klass, rb_intern(name), 0, NOEX_PUBLIC);
|
||||
}
|
||||
|
||||
VALUE
|
||||
rb_singleton_class(obj)
|
||||
VALUE obj;
|
||||
|
|
5
eval.c
5
eval.c
|
@ -2117,7 +2117,7 @@ rb_eval(self, node)
|
|||
rb_clear_cache_by_id(node->nd_mid);
|
||||
}
|
||||
|
||||
if (FL_TEST(the_scope,SCOPE_PRIVATE)) {
|
||||
if (FL_TEST(the_scope,SCOPE_PRIVATE) || node->nd_mid == init) {
|
||||
noex = NOEX_PRIVATE;
|
||||
}
|
||||
else {
|
||||
|
@ -2127,9 +2127,6 @@ rb_eval(self, node)
|
|||
if (FL_TEST(the_scope,SCOPE_MODFUNC)) {
|
||||
rb_add_method(rb_singleton_class(the_class),
|
||||
node->nd_mid, node->nd_defn, NOEX_PUBLIC);
|
||||
}
|
||||
|
||||
if (FL_TEST(the_scope, SCOPE_MODFUNC)) {
|
||||
rb_funcall(the_class, rb_intern("singleton_method_added"),
|
||||
1, INT2FIX(node->nd_mid));
|
||||
}
|
||||
|
|
|
@ -10,4 +10,4 @@
|
|||
#socket
|
||||
#tkutil
|
||||
#tcltklib
|
||||
gtk
|
||||
#gtk
|
||||
|
|
|
@ -5246,7 +5246,6 @@ Init_gtk()
|
|||
|
||||
/* GtkObject */
|
||||
rb_define_method(gObject, "initialize", gobj_initialize, -1);
|
||||
rb_define_method(gObject, "initialize", gobj_initialize, -1);
|
||||
rb_define_method(gObject, "set_flags", gobj_set_flags, 1);
|
||||
rb_define_method(gObject, "unset_flags", gobj_unset_flags, 1);
|
||||
rb_define_method(gObject, "destroy", gobj_destroy, 0);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue