[Gauche-devel-jp] tree-map-pop-min!してtree-map-num-entriesの結果が変わない

Zurück zum Archiv-Index

Shiro Kawai shiro****@lava*****
2010年 2月 6日 (土) 19:18:26 JST


取り込みました。ありがとうございます。

--shiro

From: Masatake YAMATO <yamat****@redha*****>
Subject: [Gauche-devel-jp] tree-map-pop-min!してtree-map-num-entriesの結果が変わない
Date: Sat, 06 Feb 2010 13:40:47 +0900 (JST)

> こんにちは
> 
> (let1 tree (make-tree-map = <)
>    (tree-map-put! tree 0 0)
>    (tree-map-pop-min! tree)
>    (tree-map-num-entries tree))
> => 1
> 
> となります。これは0になるべきだと思うのですが、いかがでしょう。
> 修正案とテストケースを書いてみました。もしかしたらdelete_nodeの中で
> num_entriesを更新した方が良いのかもしれませんが判断できませんでした。
> もし問題無ければ取り込んで下さい。
> よろしくお願いします。
> 
> 大和
> 	
> 
> Index: src/treemap.c
> ===================================================================
> --- src/treemap.c	(revision 7033)
> +++ src/treemap.c	(working copy)
> @@ -160,7 +160,10 @@
>      Node *root = ROOT(tc);
>      if (root) {
>          Node *n = (op == SCM_TREE_CORE_MIN)? leftmost(root) : rightmost(root);
> -        if (pop) n = delete_node(tc, n);
> +        if (pop) {
> +	    n = delete_node(tc, n);
> +	    tc->num_entries--;
> +	}
>          return n;
>      } else {
>          return NULL;
> Index: test/treemap.scm
> ===================================================================
> --- test/treemap.scm	(revision 7033)
> +++ test/treemap.scm	(working copy)
> @@ -420,5 +420,12 @@
>    (tester "xx"  #f #f #f #f)
>    )
>  
> +(let1 tree (make-tree-map = <)
> +  (test* "tree-map-min" 0 
> +	 (begin
> +	   (tree-map-put! tree 0 0)
> +	   (tree-map-pop-min! tree)
> +	   (tree-map-num-entries tree))))
> +
>  (test-end)
>  
> 
> _______________________________________________
> Gauche-devel-jp mailing list
> Gauch****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/gauche-devel-jp




Gauche-devel-jp メーリングリストの案内
Zurück zum Archiv-Index