[#31787] MIME decoding — Tietew <tietew@...>

Tietew です。

24 messages 2001/10/08

[#31866] 先祖がえり — "T.Shirakawa" <niegh@...>

はじめまして つい最近、MLに登録した白川です。

20 messages 2001/10/14
[#31867] Re: 先祖がえり — Koji Arai <JCA02266@...> 2001/10/14

新井です。

[#31889] Ruby Conference — Minero Aoki <aamine@...>

あおきです。

31 messages 2001/10/16
[#31905] Re: Ruby Conference — matz@... (Yukihiro Matsumoto) 2001/10/17

まつもと ゆきひろです

[#31923] Re: Ruby Conference — TAKAHASHI Masayoshi <maki@...> 2001/10/17

高橋征義です。

[#31932] しぶらぐ — "KANEMITSU Masao" <masao-k@...> 2001/10/18

http://www.ne.jp/asahi/masao-k/home/newpage1.htm

[#31906] 数値の配列の一部を文字列にして、多重代入したい — みかみまさと <kofu@...>

こんにちは。みかみにございます。

9 messages 2001/10/17

[#32016] Re: コメント削除スクリプト — "Tatsuaki Nagai" <Tatsuaki_Nagai@...>

こんにちは。永井です。

15 messages 2001/10/24
[#32018] Re: コメント削除スクリプト — TASHIRO Katsuya <tashiro_katsuya@...> 2001/10/24

田代と申します.

[#32123] dRuby の DRbUndumped#_dump は? — FUJIMOTO Hisakuni <hisa@...>

こんにちは、藤本です。

21 messages 2001/10/30
[#32124] Re: dRuby の DRbUndumped#_dump は? — m_seki@... 2001/10/30

[#32126] Re: dRuby の DRbUndumped#_dump は? — shudo@... 2001/10/31

咳さん wrote:

[#32145] Test::Unit — MUTOH@...

むとうです。

20 messages 2001/10/31

[ruby-list:31880] Re: 先祖がえり

From: nobu.nakada@...
Date: 2001-10-15 23:20:03 UTC
List: ruby-list #31880
なかだです。

At Tue, 16 Oct 2001 02:30:12 +0900,
Koji Arai <JCA02266@nifty.ne.jp> wrote:
> 見てみました。文字列を生成するメソッドと、self を加工するメ
> ソッドがあるというわけですね。それはいいのですが、同じメソッ
> ドが引数によって違う挙動を示すのは混乱を招くだけだと思うので
> す。

 1.7だとStringの方はだいたいself.classのインスタンスを返すよう
になってます。


Index: array.c
===================================================================
RCS file: /cvs/ruby/src/ruby/array.c,v
retrieving revision 1.60
diff -u -2 -p -u -r1.60 array.c
--- array.c	2001/10/05 06:30:42	1.60
+++ array.c	2001/10/15 23:02:35
@@ -87,8 +87,9 @@ rb_ary_s_alloc(klass)
 
 VALUE
-rb_ary_new2(len)
+rb_ary_new0(klass, len)
+    VALUE klass;
     long len;
 {
-    VALUE ary = rb_obj_alloc(rb_cArray);
+    VALUE ary = rb_obj_alloc(klass);
 
     if (len < 0) {
@@ -111,4 +112,11 @@ rb_ary_new()
 }
 
+VALUE
+rb_ary_new2(len)
+    long len;
+{
+    return rb_ary_new0(rb_cArray, len);
+}
+
 #ifdef HAVE_STDARG_PROTOTYPES
 #include <stdarg.h>
@@ -164,4 +172,12 @@ rb_ary_new4(n, elts)
 
 VALUE
+rb_ary_new5(obj, len)
+    VALUE obj;
+    long len;
+{
+    return rb_ary_new0(rb_obj_class(obj), len);
+}
+
+VALUE
 rb_assoc_new(car, cdr)
     VALUE car, cdr;
@@ -420,10 +436,9 @@ rb_ary_subseq(ary, beg, len)
 	len = 0;
     }
-    if (len == 0) return rb_ary_new2(0);
+    if (len == 0) return rb_ary_new5(ary, 0);
 
-    ary2 = rb_ary_new2(len);
+    ary2 = rb_ary_new5(ary, len);
     MEMCPY(RARRAY(ary2)->ptr, RARRAY(ary)->ptr+beg, VALUE, len);
     RARRAY(ary2)->len = len;
-    RBASIC(ary2)->klass = rb_obj_class(ary);
 
     return ary2;
@@ -744,5 +759,5 @@ rb_ary_clone(ary)
     VALUE ary;
 {
-    VALUE clone = rb_ary_new2(RARRAY(ary)->len);
+    VALUE clone = rb_ary_new5(ary, RARRAY(ary)->len);
 
     CLONESETUP(clone, ary);
@@ -756,7 +771,6 @@ rb_ary_dup(ary)
     VALUE ary;
 {
-    VALUE dup = rb_ary_new2(RARRAY(ary)->len);
+    VALUE dup = rb_ary_new5(ary, RARRAY(ary)->len);
 
-    OBJSETUP(dup, rb_obj_class(ary), T_ARRAY);
     MEMCPY(RARRAY(dup)->ptr, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
     RARRAY(dup)->len = RARRAY(ary)->len;
@@ -1341,5 +1355,5 @@ rb_ary_times(ary, times)
     len *= RARRAY(ary)->len;
 
-    ary2 = rb_ary_new2(len);
+    ary2 = rb_ary_new5(ary, len);
     RARRAY(ary2)->len = len;
 
@@ -1348,5 +1362,4 @@ rb_ary_times(ary, times)
     }
     OBJ_INFECT(ary2, ary);
-    RBASIC(ary2)->klass = rb_obj_class(ary);
 
     return ary2;
Index: intern.h
===================================================================
RCS file: /cvs/ruby/src/ruby/intern.h,v
retrieving revision 1.66
diff -u -2 -p -u -r1.66 intern.h
--- intern.h	2001/10/10 08:21:13	1.66
+++ intern.h	2001/10/15 23:03:55
@@ -21,8 +21,10 @@
 void rb_mem_clear _((register VALUE*, register long));
 VALUE rb_assoc_new _((VALUE, VALUE));
+VALUE rb_ary_new0 _((VALUE, long));
 VALUE rb_ary_new _((void));
 VALUE rb_ary_new2 _((long));
 VALUE rb_ary_new3 __((long,...));
 VALUE rb_ary_new4 _((long, VALUE *));
+VALUE rb_ary_new5 _((VALUE, long));
 VALUE rb_ary_freeze _((VALUE));
 VALUE rb_ary_aref _((int, VALUE*, VALUE));


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread