Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: missing cache in 'nmz/field.c - nmz_get_field_data()'
- From: knok@xxxxxxxxxxxxx (NOKUBI Takatsugu)
- Date: Mon, 7 Oct 2002 15:39:53 JST
- X-ml-name: namazu-devel-ja
- X-mail-count: 02682
<200210030221.LAA00753@xxxxxxxxxxxxxxx>の記事において
yiwakiri@xxxxxxxxxxxxさんは書きました。
>> nmz_free_internal()にcacheのクリアを実装した方が良くないでしょうか?
そうですね。いただいたパッチのままで問題なさそうです。
>> クイックハックなので、マルチスレッドサーバでの
>> libnamazu.soの利用は考慮していません。
もともと libnmz 自体 reentrant ではないですし、このパッチで良いとお
もいます。
# この場合 LTVERSION は 6:0:3 から 7:0:4 にすればいいのかな?
ついでに同様の問題を抱えた関数がないか探してみたのですが、i18n.c の
nmz_let_lang が今のままだと呼び出す毎に malloc してしまう問題がありそ
うです。なのでパッチを書いてみました。
それ以外は多分大丈夫だと思います。
--
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx
knok@xxxxxxxxxx / knok@xxxxxxxxxx
Index: i18n.c
===================================================================
RCS file: /storage/cvsroot/namazu/nmz/i18n.c,v
retrieving revision 1.26.4.4
diff -u -r1.26.4.4 i18n.c
--- i18n.c 21 Dec 2001 05:36:40 -0000 1.26.4.4
+++ i18n.c 7 Oct 2002 06:31:30 -0000
@@ -121,8 +121,10 @@
#else
# ifdef HAVE_PUTENV
{
- static char *store;
+ static char *store = NULL;
+ if (store != NULL)
+ free(store);
store = (char *)malloc(strlen(lang) + 6); /* do *not* free */
if (store == NULL)
return NULL; /* FIXME: should be fatal error */