[#21225] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

14 messages 2003/08/22
[#21227] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — nobu.nakada@... 2003/08/22

なかだです。

[#21228] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — matz@... (Yukihiro Matsumoto) 2003/08/22

まつもと ゆきひろです

[#21281] 大量メモリ消費攻撃に対する対応 — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

16 messages 2003/08/29
[#21285] Re: 大量メモリ消費攻撃に対する対応 — matz@... (Yukihiro Matsumoto) 2003/08/29

まつもと ゆきひろです

[#21288] Re: 大量メモリ消費攻撃に対する対応 — Hidetoshi NAGAI <nagai@...> 2003/08/29

永井@知能.九工大です.

[#21306] Re: 大量メモリ消費攻撃に対する対応 — matz@... (Yukihiro Matsumoto) 2003/09/03

まつもと ゆきひろです

[ruby-dev:21093] (ary - ary) preserves duplicated values

From: Koji Arai <JCA02266@...>
Date: 2003-08-03 07:31:51 UTC
List: ruby-dev #21093
新井です。

rubicon やってて気が付いたのですが、念のため確認ですが、以下
は仕様変更ですね?

p([1, 2, 1, 3, 1, 4, 1, 5] - [2, 3, 4, 5])
=> ruby 1.6.8 (2002-12-24) [i586-linux]
   [1]
=> ruby 1.8.0 (2003-02-16) [i586-linux]
   [1, 1, 1, 1]
=> ruby 1.8.0 (2003-08-01) [i586-linux]
   [1, 1, 1, 1]

以下の変更によるようなので意図的だとは思いますが。

| Index: array.c
| ===================================================================
| RCS file: /usr/local/cvsup/ruby/ruby/array.c,v
| retrieving revision 1.108
| retrieving revision 1.109
| diff -u -r1.108 -r1.109
| --- array.c	16 Jan 2003 07:34:01 -0000	1.108
| +++ array.c	3 Feb 2003 05:34:13 -0000	1.109
| @@ -2,8 +2,8 @@
|  
|    array.c -
|  
| -  $Author: michal $
| -  $Date: 2003/01/16 07:34:01 $
| +  $Author: matz $
| +  $Date: 2003/02/03 05:34:13 $
|    created at: Fri Aug  6 09:46:12 JST 1993
|  
|    Copyright (C) 1993-2003 Yukihiro Matsumoto
| @@ -1649,23 +1649,6 @@
|  }
|  
|  static VALUE
| -rb_ary_diff(ary1, ary2)
| -    VALUE ary1, ary2;
| -{
| -    VALUE ary3;
| -    long i;
| -
| -    ary2 = to_ary(ary2);
| -    ary3 = rb_ary_new();
| -    for (i=0; i<RARRAY(ary1)->len; i++) {
| -	if (rb_ary_includes(ary2, RARRAY(ary1)->ptr[i])) continue;
| -	if (rb_ary_includes(ary3, RARRAY(ary1)->ptr[i])) continue;
| -	rb_ary_push(ary3, RARRAY(ary1)->ptr[i]);
| -    }
| -    return ary3;
| -}
| -
| -static VALUE
|  ary_make_hash(ary1, ary2)
|      VALUE ary1, ary2;
|  {
| @@ -1684,6 +1667,23 @@
|  }
|  
|  static VALUE
| +rb_ary_diff(ary1, ary2)
| +    VALUE ary1, ary2;
| +{
| +    VALUE ary3, hash;
| +    long i;
| +
| +    hash = ary_make_hash(to_ary(ary2), 0);
| +    ary3 = rb_ary_new();
| +
| +    for (i=0; i<RARRAY(ary1)->len; i++) {
| +	if (st_lookup(RHASH(hash)->tbl, RARRAY(ary1)->ptr[i], 0)) continue;
| +	rb_ary_push(ary3, RARRAY(ary1)->ptr[i]);
| +    }
| +    return ary3;
| +}
| +
| +static VALUE
|  rb_ary_and(ary1, ary2)
|      VALUE ary1, ary2;
|  {

--
新井康司 (Koji Arai)

In This Thread

Prev Next