Kouhei Sutou
kou****@clear*****
2009年 5月 27日 (水) 22:52:54 JST
須藤です。
grn_table_open()のnameとpathにNULLを渡すと、NULLが返ってくる
のですが、そのとき、エラー情報が設定されていないため、NULLが
返ってくる理由を特定するのが難しい気がします。
そのようなときにエラー情報を設定するというのはどうでしょうか?
こんな感じのイメージです。↓(メッセージは適当ですが。。。)
diff --git a/lib/db.c b/lib/db.c
index eed64a5..33c44de 100644
--- a/lib/db.c
+++ b/lib/db.c
@@ -585,6 +585,8 @@ grn_table_open(grn_ctx *ctx, const char *name, unsigned name_size, const char *p
DB_OBJ(res)->range = GRN_ID_NIL; /* unknown */
grn_db_obj_init(ctx, db, id, DB_OBJ(res));
}
+ } else {
+ ERR(GRN_INVALID_ARGUMENT, "path is missing");
}
GRN_API_RETURN(res);
}
あと、同じくgrn_table_open()の↓のときもエラー情報を設定して
くれると嬉しいなぁと思いました。
if (path && (!path2 || strcmp(path, path2))) { GRN_API_RETURN(NULL); }
--
須藤 功平 <kou****@clear*****>
株式会社クリアコード (http://www.clear-code.com/)
Tel: 03-6231-7270, Fax: 03-6231-7271