morit****@razil*****
morit****@razil*****
2007年 12月 22日 (土) 19:26:20 JST
森です。 大変おそくなりましたが、この問題をSenna rev653で修正しました。 指摘ありがとうございました。→ 幸坂さん Senna1.1.0ももうすぐ出します!! >>> Tasuku SUENAGA さんは書きました: > 末永です。 > > おお。。。BULK(P)で落ちているとは。。 > 修正いたします! > > その他バグフィックスがたまってきたので、 > Senna 1.0.10を出す予定です。 > > kousa****@nttda***** さんは書きました: > > 幸坂です。こんにちは。 > > > > sen_query_termが落ちます。 > > http://qwik.jp/senna/bug_report.html > > この書式に習って書いてみます。 > > > > ・ハードウェア環境 > > ・CPU種別:Intel(R) Xeon(TM) CPU 2.40GHz * 2 > > ・メモリ容量:2GByte > > ・ハードディスク容量:70GByte > > ・バージョン情報 > > ・OS:RHEL4 (32bit) kernel 2.6.9 > > ・Sennaのバージョン 1.0.9 > > ・起こっている問題 > > ・sen_query_termが落ちます。 > > ・検索対象コンテンツの情報 > > ・10文字×3行 > > ・再現方法 > > 擬似コードを書きます。 > > > > int my_query_term_callback(const char* term, unsigned int len, void* > > func_arg) { > > int* n = (int*)func_arg; > > (*n)++; > > printf("test %d %.*s", *n, len, term); > > return 1; > > } > > > > main () { > > ... > > char str[128] = "aaa -bbb +ccc"; > > int n = 0; > > sen_query q = sen_query_open(str, strlen(str), sen_sel_or, 32, 3); > > sen_query_term(q, &my_query_term_callback, &n); > > } > > > > 出力結果: > > test 1 aaa > > Sementation Fault > > (query.cの557行目のBULKP(c)で落ちているようです。) > > > > 予想していた出力結果 > > test 1 aaa > > test 2 bbb > > test 3 ccc > > > > > > 以下のように変更すると、予想通りの結果が返って来るのですが、 > > そもそも、私の使用方法が間違っている可能性もあります。 > > 何かわかりましたらご教示ください。 > > > > $ diff RELEASE-1.0.9/lib/query.c RELEASE-1.0.9_fix/lib/query.c > > 557,562c557,562 > > < if (BULKP(c)) { > > < return func(c->u.b.value, c->u.b.size, func_arg); > > < } > > < for (token = c->u.l.car; token; token = token->u.l.cdr) { > > < if (!query_term_rec(q, token, func, func_arg)) { > > < return 0; /* abort */ > > --- > >> for (token = c; token != NIL; token = token->u.l.cdr) { > >> if (BULKP(token->u.l.car)) { > >> if (!func(token->u.l.car->u.b.value, > >> token->u.l.car->u.b.size, func_arg)) { > >> return 0; /* abort */ > >> } > --- > Tasuku SUENAGA <a****@razil*****> > > _______________________________________________ > Senna-dev mailing list > Senna****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/senna-dev > -- morita