null+****@clear*****
null+****@clear*****
2011年 12月 9日 (金) 13:52:01 JST
Daijiro MORI 2011-12-09 04:52:01 +0000 (Fri, 09 Dec 2011) New Revision: 253cb421140144d1db7cbfe99671dc03af5f620d Log: got rid of needless macro Modified files: plugins/tokenizers/mecab.c Modified: plugins/tokenizers/mecab.c (+11 -19) =================================================================== --- plugins/tokenizers/mecab.c 2011-12-09 01:44:29 +0000 (ddc8816) +++ plugins/tokenizers/mecab.c 2011-12-09 04:52:01 +0000 (b84692f) @@ -32,24 +32,6 @@ static mecab_t *sole_mecab; static grn_critical_section sole_mecab_lock; -/* - This macro is called only once. - Why don't you put this directly? - */ -#define SOLE_MECAB_CONFIRM do {\ - if (!sole_mecab) {\ - static char *argv[] = {"", "-Owakati"};\ - CRITICAL_SECTION_ENTER(sole_mecab_lock);\ - if (!sole_mecab) {\ - sole_mecab = mecab_new(2, argv);\ - if (!sole_mecab) {\ - strncpy(mecab_err, mecab_strerror(NULL), sizeof(mecab_err) - 1);\ - }\ - }\ - CRITICAL_SECTION_LEAVE(sole_mecab_lock);\ - }\ -} while(0) - typedef struct { grn_str *nstr; mecab_t *mecab; @@ -84,7 +66,17 @@ mecab_init(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data) return NULL; } mecab_err[sizeof(mecab_err) - 1] = '\0'; - SOLE_MECAB_CONFIRM; + if (!sole_mecab) { + static char *argv[] = {"", "-Owakati"}; + CRITICAL_SECTION_ENTER(sole_mecab_lock); + if (!sole_mecab) { + sole_mecab = mecab_new(2, argv); + if (!sole_mecab) { + strncpy(mecab_err, mecab_strerror(NULL), sizeof(mecab_err) - 1); + } + } + CRITICAL_SECTION_LEAVE(sole_mecab_lock); + } if (!sole_mecab) { ERR(GRN_TOKENIZER_ERROR, "mecab_new failed on grn_mecab_init: %s", mecab_err);