SANETO Takanori
sanew****@ba2*****
2005年 10月 12日 (水) 17:37:18 JST
Yuichi Yoshida wrote: > anthy-7012をリリースしました。 FreeBSDのportsをいじってanthy-7012を使うようにしてbuildしてみたところ、 anthy.dicを作るところで落ちてしまいました。 ちょっと調べたところ、src-diclib/matrix.cで、hash arrayの要素が空かどう かの判断を index == -1 で見ているところと !ptr で見ているところがあり、 後者が間違っているように見えます。(indexは-1で初期化されているが ptrは初 期化されていない) 下記のような修正を入れると、落ちなくなりました。パッチの後半部分では、if (!sa) の部分は残していますが、削除してしまってもいいかも。 (別の解としては、ptrがNULLで初期化されるよう、arrayの確保にcallocを使 う、という手もあるかもしれません) 生成された anthy.dic などが正しいかどうかは未確認ですが、ひとまずお知ら せまで。 --- src-diclib/matrix.c.orig Wed Oct 12 16:03:42 2005 +++ src-diclib/matrix.c Wed Oct 12 16:11:34 2005 @@ -304,7 +304,7 @@ ae = &m->row_array->array[i]; /**/ ae->value = offset; - if (!ae->ptr) { + if (ae->index == -1) { continue; } /**/ @@ -342,6 +342,7 @@ struct sparse_array *sa; int j; ae = &s->row_array->array[i]; + if (ae->index == -1) continue; sa = ae->ptr; if (!sa) { continue; -- SANETO Takanori <sanew****@ba2*****>