null+****@clear*****
null+****@clear*****
2011年 9月 1日 (木) 13:16:59 JST
Kouhei Sutou 2011-09-01 04:16:59 +0000 (Thu, 01 Sep 2011)
New Revision: 7a9792ef842cea389a58e7a8e345853c1869f665
Log:
share REPORT_CAST_ERROR macro.
Modified files:
lib/db.c
Modified: lib/db.c (+17 -19)
===================================================================
--- lib/db.c 2011-09-01 04:14:01 +0000 (461f091)
+++ lib/db.c 2011-09-01 04:16:59 +0000 (5f0d415)
@@ -45,6 +45,20 @@
}\
}
+#define REPORT_CAST_ERROR(range, element) {\
+ grn_obj inspected;\
+ char range_name[GRN_TABLE_MAX_KEY_SIZE];\
+ int range_name_size;\
+ GRN_TEXT_INIT(&inspected, 0);\
+ grn_inspect(ctx, &inspected, element);\
+ range_name_size = grn_obj_name(ctx, range, range_name,\
+ GRN_TABLE_MAX_KEY_SIZE);\
+ ERR(GRN_INVALID_ARGUMENT, "failed to cast to <%.*s>: <%.*s>",\
+ range_name_size, range_name,\
+ GRN_TEXT_LEN(&inspected), GRN_TEXT_VALUE(&inspected));\
+ GRN_OBJ_FIN(ctx, &inspected);\
+}
+
inline static void
gen_pathname(const char *path, char *buffer, int fno)
{
@@ -7817,20 +7831,6 @@ loader_add(grn_ctx *ctx, grn_obj *key)
return id;
}
-#define REPORT_CAST_ERROR(element) {\
- grn_obj inspected;\
- char range_name[GRN_TABLE_MAX_KEY_SIZE];\
- int range_name_size;\
- GRN_TEXT_INIT(&inspected, 0);\
- grn_inspect(ctx, &inspected, element);\
- range_name_size = grn_obj_name(ctx, range, range_name,\
- GRN_TABLE_MAX_KEY_SIZE);\
- ERR(GRN_ERROR, "failed to cast to <%.*s>: <%.*s>",\
- range_name_size, range_name,\
- GRN_TEXT_LEN(&inspected), GRN_TEXT_VALUE(&inspected));\
- GRN_OBJ_FIN(ctx, &inspected);\
-}
-
static void
set_vector(grn_ctx *ctx, grn_obj *column, grn_id id, grn_obj *vector)
{
@@ -7850,7 +7850,7 @@ set_vector(grn_ctx *ctx, grn_obj *column, grn_id id, grn_obj *vector)
GRN_RECORD_INIT(&record, 0, range_id);
if (grn_obj_cast(ctx, element, &record, GRN_TRUE)) {
cast_failed = GRN_TRUE;
- REPORT_CAST_ERROR(element);
+ REPORT_CAST_ERROR(range, element);
}
element = &record;
}
@@ -7871,7 +7871,7 @@ set_vector(grn_ctx *ctx, grn_obj *column, grn_id id, grn_obj *vector)
GRN_OBJ_INIT(&casted_element, GRN_BULK, 0, range_id);
if (grn_obj_cast(ctx, element, &casted_element, 1)) {
cast_failed = GRN_TRUE;
- REPORT_CAST_ERROR(element);
+ REPORT_CAST_ERROR(range, element);
}
element = &casted_element;
}
@@ -7896,7 +7896,7 @@ set_vector(grn_ctx *ctx, grn_obj *column, grn_id id, grn_obj *vector)
GRN_OBJ_INIT(&casted_element, GRN_BULK, 0, range_id);
if (grn_obj_cast(ctx, element, &casted_element, GRN_TRUE)) {
cast_failed = GRN_TRUE;
- REPORT_CAST_ERROR(element);
+ REPORT_CAST_ERROR(range, element);
}
element = &casted_element;
}
@@ -7912,8 +7912,6 @@ set_vector(grn_ctx *ctx, grn_obj *column, grn_id id, grn_obj *vector)
GRN_OBJ_FIN(ctx, &buf);
}
-#undef REPORT_CAST_ERROR
-
static inline int
name_equal(const char *p, unsigned size, const char *name)
{