[#24536] 「Rubyの落し方」 v.s. ruby_1_8 — akira yamada / やまだあきら <akira@...>

<URL:http://jp.rubyist.net/magazine/?0002-RubyCore>

40 messages 2004/10/20
[#24541] Re: 「Rubyの落し方」 v.s. ruby_1_8 — Yukihiro Matsumoto <matz@...> 2004/10/20

まつもと ゆきひろです

[#24599] 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/26

2004-10-20 (水) の 21:38 +0900 に Yukihiro Matsumoto さんは書きました:

[#24605] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-26 (火) の 16:16 +0900 に akira yamada / やまだあきら さんは書きました:

[#24606] Re: 1.8.2 preview3? — Yukihiro Matsumoto <matz@...> 2004/10/27

まつもと ゆきひろです

[#24608] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 11:48 +0900 に Yukihiro Matsumoto さんは書きました:

[#24620] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 12:42 +0900 に akira yamada / やまだあきら さんは書きました:

[#24629] Re: 1.8.2 preview3? — Tanaka Akira <akr@...17n.org> 2004/10/29

In article <1098888819.9446.14.camel@rice.p.arika.org>,

[ruby-dev:24570] Re: ordered hash

From: nobu@...
Date: 2004-10-23 01:53:29 UTC
List: ruby-dev #24570
なかだです。

At Sat, 23 Oct 2004 01:35:00 +0900,
nobu@ruby-lang.org wrote in [ruby-dev:24569]:
> たしかruby-talkでHashを順序つきにするという話が出ていたと思うん
> ですが、いつのだか分からなくなったのでdevに振ります。

説明を忘れてましたが、st_table_entryにdouble linked listを追加
してst_foreach()ではそっちをたどるようにしただけです。

あとちょっと訂正。


Index: st.c
===================================================================
RCS file: /cvs/ruby/src/ruby/st.c,v
retrieving revision 1.30.100.1
diff -U2 -p -d -r1.30.100.1 st.c
--- st.c	22 Oct 2004 16:18:59 -0000	1.30.100.1
+++ st.c	23 Oct 2004 01:46:23 -0000
@@ -460,4 +460,5 @@
 	if ((ptr->key != never) && EQUAL(table, ptr->key, *key)) {
 	    REMOVE_ENTRY(table, ptr);
+	    table->num_entries--;
 	    *key = ptr->key;
 	    if (value != 0) *value = ptr->record;
@@ -482,9 +483,8 @@
 	ptr = *(last = &table->bins[i]);
 	while (ptr != 0) {
-	    if (ptr->forw == 0) {
+	    if (ptr->key == never) {
 		tmp = ptr;
 		*last = ptr = ptr->next;
 		free(tmp);
-		table->num_entries--;
 	    }
 	    else {


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

In This Thread

Prev Next