Skip to content

Commit 6e52d10

Browse files
author
matz
committed
* object.c (init_copy): rename copy_object as initialize_copy,
since it works as copy constructor. * eval.c (rb_add_method): initialize_copy should always be private, like initialize. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
1 parent 81882ba commit 6e52d10

File tree

12 files changed

+61
-55
lines changed

12 files changed

+61
-55
lines changed

ChangeLog

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
Mon May 19 13:58:03 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
2+
3+
* object.c (init_copy): rename copy_object as initialize_copy,
4+
since it works as copy constructor.
5+
6+
* eval.c (rb_add_method): initialize_copy should always be
7+
private, like initialize.
8+
19
Mon May 19 13:51:50 2003 Minero Aoki <aamine@loveruby.net>
210

311
* re.c (rb_reg_quote): \n \r \f \v quoting was wrong.

array.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1941,7 +1941,7 @@ Init_Array()
19411941
rb_define_alloc_func(rb_cArray, ary_alloc);
19421942
rb_define_singleton_method(rb_cArray, "[]", rb_ary_s_create, -1);
19431943
rb_define_method(rb_cArray, "initialize", rb_ary_initialize, -1);
1944-
rb_define_method(rb_cArray, "copy_object", rb_ary_replace, 1);
1944+
rb_define_method(rb_cArray, "initialize_copy", rb_ary_replace, 1);
19451945

19461946
rb_define_method(rb_cArray, "to_s", rb_ary_to_s, 0);
19471947
rb_define_method(rb_cArray, "inspect", rb_ary_inspect, 0);

eval.c

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -266,26 +266,26 @@ rb_add_method(klass, mid, node, noex)
266266
}
267267
if (!FL_TEST(klass, FL_SINGLETON) &&
268268
node && nd_type(node) != NODE_ZSUPER &&
269-
mid == rb_intern("initialize")) {
270-
noex = NOEX_PRIVATE | (noex & NOEX_NOSUPER);
271-
}
272-
else if (FL_TEST(klass, FL_SINGLETON) && node && nd_type(node) == NODE_CFUNC &&
273-
mid == rb_intern("allocate")) {
274-
rb_warn("defining %s.allocate is deprecated; use rb_define_alloc_func()",
275-
rb_class2name(rb_iv_get(klass, "__attached__")));
276-
mid = ID_ALLOCATOR;
277-
}
278-
if (OBJ_FROZEN(klass)) rb_error_frozen("class/module");
279-
rb_clear_cache_by_id(mid);
280-
body = NEW_METHOD(node, noex);
281-
st_insert(RCLASS(klass)->m_tbl, mid, (st_data_t)body);
282-
if (node && mid != ID_ALLOCATOR && ruby_running) {
283-
if (FL_TEST(klass, FL_SINGLETON)) {
284-
rb_funcall(rb_iv_get(klass, "__attached__"), singleton_added, 1, ID2SYM(mid));
285-
}
286-
else {
287-
rb_funcall(klass, added, 1, ID2SYM(mid));
288-
}
269+
(mid == rb_intern("initialize" )|| mid == rb_intern("initialize_copy"))) {
270+
noex = NOEX_PRIVATE | (noex & NOEX_NOSUPER);
271+
}
272+
else if (FL_TEST(klass, FL_SINGLETON) && node && nd_type(node) == NODE_CFUNC &&
273+
mid == rb_intern("allocate")) {
274+
rb_warn("defining %s.allocate is deprecated; use rb_define_alloc_func()",
275+
rb_class2name(rb_iv_get(klass, "__attached__")));
276+
mid = ID_ALLOCATOR;
277+
}
278+
if (OBJ_FROZEN(klass)) rb_error_frozen("class/module");
279+
rb_clear_cache_by_id(mid);
280+
body = NEW_METHOD(node, noex);
281+
st_insert(RCLASS(klass)->m_tbl, mid, (st_data_t)body);
282+
if (node && mid != ID_ALLOCATOR && ruby_running) {
283+
if (FL_TEST(klass, FL_SINGLETON)) {
284+
rb_funcall(rb_iv_get(klass, "__attached__"), singleton_added, 1, ID2SYM(mid));
285+
}
286+
else {
287+
rb_funcall(klass, added, 1, ID2SYM(mid));
288+
}
289289
}
290290
}
291291

file.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2260,7 +2260,7 @@ rb_stat_init(obj, fname)
22602260
}
22612261

22622262
static VALUE
2263-
rb_stat_copy_object(copy, orig)
2263+
rb_stat_init_copy(copy, orig)
22642264
VALUE copy, orig;
22652265
{
22662266
struct stat *nst;
@@ -2915,7 +2915,7 @@ Init_File()
29152915
rb_cStat = rb_define_class_under(rb_cFile, "Stat", rb_cObject);
29162916
rb_define_alloc_func(rb_cStat, rb_stat_s_alloc);
29172917
rb_define_method(rb_cStat, "initialize", rb_stat_init, 1);
2918-
rb_define_method(rb_cStat, "copy_object", rb_stat_copy_object, 1);
2918+
rb_define_method(rb_cStat, "initialize_copy", rb_stat_init_copy, 1);
29192919

29202920
rb_include_module(rb_cStat, rb_mComparable);
29212921

hash.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1742,7 +1742,7 @@ Init_Hash()
17421742
rb_define_alloc_func(rb_cHash, hash_alloc);
17431743
rb_define_singleton_method(rb_cHash, "[]", rb_hash_s_create, -1);
17441744
rb_define_method(rb_cHash,"initialize", rb_hash_initialize, -1);
1745-
rb_define_method(rb_cHash,"copy_object", rb_hash_replace, 1);
1745+
rb_define_method(rb_cHash,"initialize_copy", rb_hash_replace, 1);
17461746
rb_define_method(rb_cHash,"rehash", rb_hash_rehash, 0);
17471747

17481748
rb_define_method(rb_cHash,"to_hash", rb_hash_to_hash, 0);

io.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2467,7 +2467,7 @@ rb_io_reopen(argc, argv, file)
24672467
}
24682468

24692469
static VALUE
2470-
rb_io_copy_object(dest, io)
2470+
rb_io_init_copy(dest, io)
24712471
VALUE dest, io;
24722472
{
24732473
OpenFile *fptr, *orig;
@@ -3925,7 +3925,7 @@ Init_IO()
39253925
rb_define_hooked_variable("$.", &lineno, 0, lineno_setter);
39263926
rb_define_virtual_variable("$_", rb_lastline_get, rb_lastline_set);
39273927

3928-
rb_define_method(rb_cIO, "copy_object", rb_io_copy_object, 1);
3928+
rb_define_method(rb_cIO, "initialize_copy", rb_io_init_copy, 1);
39293929
rb_define_method(rb_cIO, "reopen", rb_io_reopen, -1);
39303930

39313931
rb_define_method(rb_cIO, "print", rb_io_print, -1);

numeric.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ num_coerce_relop(x, y)
158158
}
159159

160160
static VALUE
161-
num_copy_object(x, y)
161+
num_init_copy(x, y)
162162
VALUE x, y;
163163
{
164164
/* Numerics are immutable values, which should not be copied */
@@ -1767,7 +1767,7 @@ Init_Numeric()
17671767
rb_cNumeric = rb_define_class("Numeric", rb_cObject);
17681768

17691769
rb_include_module(rb_cNumeric, rb_mComparable);
1770-
rb_define_method(rb_cNumeric, "copy_object", num_copy_object, 1);
1770+
rb_define_method(rb_cNumeric, "initialize_copy", num_init_copy, 1);
17711771
rb_define_method(rb_cNumeric, "coerce", num_coerce, 1);
17721772

17731773
rb_define_method(rb_cNumeric, "+@", num_uplus, 0);

object.c

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ VALUE rb_cTrueClass;
3131
VALUE rb_cFalseClass;
3232
VALUE rb_cSymbol;
3333

34-
static ID eq, eql;
35-
static ID inspect;
36-
static ID copy_obj;
34+
static ID id_eq, id_eql, id_inspect, id_init_copy;
3735

3836
VALUE
3937
rb_equal(obj1, obj2)
@@ -42,7 +40,7 @@ rb_equal(obj1, obj2)
4240
VALUE result;
4341

4442
if (obj1 == obj2) return Qtrue;
45-
result = rb_funcall(obj1, eq, 1, obj2);
43+
result = rb_funcall(obj1, id_eq, 1, obj2);
4644
if (RTEST(result)) return Qtrue;
4745
return Qfalse;
4846
}
@@ -51,7 +49,7 @@ int
5149
rb_eql(obj1, obj2)
5250
VALUE obj1, obj2;
5351
{
54-
return RTEST(rb_funcall(obj1, eql, 1, obj2));
52+
return RTEST(rb_funcall(obj1, id_eql, 1, obj2));
5553
}
5654

5755
static VALUE
@@ -106,15 +104,15 @@ rb_obj_class(obj)
106104
}
107105

108106
static void
109-
copy_object(dest, obj)
107+
init_copy(dest, obj)
110108
VALUE dest, obj;
111109
{
112110
if (OBJ_FROZEN(dest)) {
113111
rb_raise(rb_eTypeError, "[bug] frozen object (%s) allocated", rb_obj_classname(dest));
114112
}
115113
RBASIC(dest)->flags &= ~(T_MASK|FL_EXIVAR);
116114
RBASIC(dest)->flags |= RBASIC(obj)->flags & (T_MASK|FL_EXIVAR|FL_TAINT);
117-
rb_funcall(dest, copy_obj, 1, obj);
115+
rb_funcall(dest, id_init_copy, 1, obj);
118116
if (FL_TEST(obj, FL_EXIVAR)) {
119117
rb_copy_generic_ivar(dest, obj);
120118
}
@@ -143,7 +141,7 @@ rb_obj_clone(obj)
143141
rb_raise(rb_eTypeError, "can't clone %s", rb_obj_classname(obj));
144142
}
145143
clone = rb_obj_alloc(rb_obj_class(obj));
146-
copy_object(clone, obj);
144+
init_copy(clone, obj);
147145
RBASIC(clone)->klass = rb_singleton_class_clone(obj);
148146
RBASIC(clone)->flags = RBASIC(obj)->flags | FL_TEST(clone, FL_TAINT);
149147

@@ -160,19 +158,19 @@ rb_obj_dup(obj)
160158
rb_raise(rb_eTypeError, "can't dup %s", rb_obj_classname(obj));
161159
}
162160
dup = rb_obj_alloc(rb_obj_class(obj));
163-
copy_object(dup, obj);
161+
init_copy(dup, obj);
164162

165163
return dup;
166164
}
167165

168166
VALUE
169-
rb_obj_copy_object(obj, orig)
167+
rb_obj_init_copy(obj, orig)
170168
VALUE obj, orig;
171169
{
172170
if (obj == orig) return obj;
173171
rb_check_frozen(obj);
174172
if (TYPE(obj) != TYPE(orig) || rb_obj_class(obj) != rb_obj_class(orig)) {
175-
rb_raise(rb_eTypeError, "copy_object should take same class object");
173+
rb_raise(rb_eTypeError, "initialize_copy should take same class object");
176174
}
177175
return obj;
178176
}
@@ -204,7 +202,7 @@ VALUE
204202
rb_inspect(obj)
205203
VALUE obj;
206204
{
207-
return rb_obj_as_string(rb_funcall(obj, inspect, 0, 0));
205+
return rb_obj_as_string(rb_funcall(obj, id_inspect, 0, 0));
208206
}
209207

210208
static int
@@ -1406,7 +1404,7 @@ Init_Object()
14061404

14071405
rb_define_method(rb_mKernel, "clone", rb_obj_clone, 0);
14081406
rb_define_method(rb_mKernel, "dup", rb_obj_dup, 0);
1409-
rb_define_method(rb_mKernel, "copy_object", rb_obj_copy_object, 1);
1407+
rb_define_method(rb_mKernel, "initialize_copy", rb_obj_init_copy, 1);
14101408

14111409
rb_define_method(rb_mKernel, "taint", rb_obj_taint, 0);
14121410
rb_define_method(rb_mKernel, "tainted?", rb_obj_tainted, 0);
@@ -1541,8 +1539,8 @@ Init_Object()
15411539
rb_undef_method(CLASS_OF(rb_cFalseClass), "new");
15421540
rb_define_global_const("FALSE", Qfalse);
15431541

1544-
eq = rb_intern("==");
1545-
eql = rb_intern("eql?");
1546-
inspect = rb_intern("inspect");
1547-
copy_obj = rb_intern("copy_object");
1542+
id_eq = rb_intern("==");
1543+
id_eql = rb_intern("eql?");
1544+
id_inspect = rb_intern("inspect");
1545+
id_init_copy = rb_intern("initialize_copy");
15481546
}

re.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ match_alloc(klass)
582582
}
583583

584584
static VALUE
585-
match_copy_object(obj, orig)
585+
match_init_copy(obj, orig)
586586
VALUE obj, orig;
587587
{
588588
if (obj == orig) return obj;
@@ -1482,7 +1482,7 @@ rb_reg_options(re)
14821482
}
14831483

14841484
static VALUE
1485-
rb_reg_copy_object(copy, re)
1485+
rb_reg_init_copy(copy, re)
14861486
VALUE copy, re;
14871487
{
14881488
if (copy == re) return copy;
@@ -1732,7 +1732,7 @@ Init_Regexp()
17321732
rb_define_singleton_method(rb_cRegexp, "last_match", rb_reg_s_last_match, -1);
17331733

17341734
rb_define_method(rb_cRegexp, "initialize", rb_reg_initialize_m, -1);
1735-
rb_define_method(rb_cRegexp, "copy_object", rb_reg_copy_object, 1);
1735+
rb_define_method(rb_cRegexp, "initialize_copy", rb_reg_init_copy, 1);
17361736
rb_define_method(rb_cRegexp, "hash", rb_reg_hash, 0);
17371737
rb_define_method(rb_cRegexp, "eql?", rb_reg_equal, 1);
17381738
rb_define_method(rb_cRegexp, "==", rb_reg_equal, 1);
@@ -1758,7 +1758,7 @@ Init_Regexp()
17581758
rb_define_alloc_func(rb_cMatch, match_alloc);
17591759
rb_undef_method(CLASS_OF(rb_cMatch), "new");
17601760

1761-
rb_define_method(rb_cMatch, "copy_object", match_copy_object, 1);
1761+
rb_define_method(rb_cMatch, "initialize_copy", match_init_copy, 1);
17621762
rb_define_method(rb_cMatch, "size", match_size, 0);
17631763
rb_define_method(rb_cMatch, "length", match_size, 0);
17641764
rb_define_method(rb_cMatch, "offset", match_offset, 1);

string.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3236,7 +3236,7 @@ Init_String()
32363236
rb_include_module(rb_cString, rb_mEnumerable);
32373237
rb_define_alloc_func(rb_cString, str_alloc);
32383238
rb_define_method(rb_cString, "initialize", rb_str_init, -1);
3239-
rb_define_method(rb_cString, "copy_object", rb_str_replace, 1);
3239+
rb_define_method(rb_cString, "initialize_copy", rb_str_replace, 1);
32403240
rb_define_method(rb_cString, "<=>", rb_str_cmp_m, 1);
32413241
rb_define_method(rb_cString, "==", rb_str_equal, 1);
32423242
rb_define_method(rb_cString, "eql?", rb_str_eql, 1);

0 commit comments

Comments
 (0)