[Groonga-commit] groonga/groonga at 1f17587 [master] Share a macro that report cast error

Back to archive index

Kouhei Sutou null+****@clear*****
Fri Feb 21 15:15:01 JST 2014


Kouhei Sutou	2014-02-21 15:15:01 +0900 (Fri, 21 Feb 2014)

  New Revision: 1f17587a859ec7d466f5e14488742e5672f57ea8
  https://github.com/groonga/groonga/commit/1f17587a859ec7d466f5e14488742e5672f57ea8

  Message:
    Share a macro that report cast error

  Modified files:
    lib/ctx.h
    lib/db.c

  Modified: lib/ctx.h (+19 -0)
===================================================================
--- lib/ctx.h    2014-02-21 15:11:53 +0900 (86444f4)
+++ lib/ctx.h    2014-02-21 15:15:01 +0900 (5ece6ce)
@@ -142,6 +142,25 @@ GRN_API void grn_ctx_impl_set_current_error_message(grn_ctx *ctx);
 #define MERR(...) ERRSET(ctx, GRN_ALERT, GRN_NO_MEMORY_AVAILABLE,  __VA_ARGS__)
 #define ALERT(...) ERRSET(ctx, GRN_ALERT, GRN_SUCCESS,  __VA_ARGS__)
 
+#define ERR_CAST(column, range, element) do {\
+  grn_obj inspected;\
+  char column_name[GRN_TABLE_MAX_KEY_SIZE];\
+  int column_name_size;\
+  char range_name[GRN_TABLE_MAX_KEY_SIZE];\
+  int range_name_size;\
+  GRN_TEXT_INIT(&inspected, 0);\
+  grn_inspect(ctx, &inspected, element);\
+  column_name_size = grn_obj_name(ctx, column, column_name,\
+                                  GRN_TABLE_MAX_KEY_SIZE);\
+  range_name_size = grn_obj_name(ctx, range, range_name,\
+                                 GRN_TABLE_MAX_KEY_SIZE);\
+  ERR(GRN_INVALID_ARGUMENT, "<%.*s>: failed to cast to <%.*s>: <%.*s>",\
+      column_name_size, column_name,\
+      range_name_size, range_name,\
+      (int)GRN_TEXT_LEN(&inspected), GRN_TEXT_VALUE(&inspected));\
+  GRN_OBJ_FIN(ctx, &inspected);\
+} while (0)
+
 #ifdef WIN32
 #define SERR(str) do {\
   grn_rc rc;\

  Modified: lib/db.c (+7 -26)
===================================================================
--- lib/db.c    2014-02-21 15:11:53 +0900 (33c48e1)
+++ lib/db.c    2014-02-21 15:15:01 +0900 (710ae1a)
@@ -56,25 +56,6 @@
   }\
 } while (0)
 
-#define REPORT_CAST_ERROR(column, range, element) do {\
-  grn_obj inspected;\
-  char column_name[GRN_TABLE_MAX_KEY_SIZE];\
-  int column_name_size;\
-  char range_name[GRN_TABLE_MAX_KEY_SIZE];\
-  int range_name_size;\
-  GRN_TEXT_INIT(&inspected, 0);\
-  grn_inspect(ctx, &inspected, element);\
-  column_name_size = grn_obj_name(ctx, column, column_name,\
-                                  GRN_TABLE_MAX_KEY_SIZE);\
-  range_name_size = grn_obj_name(ctx, range, range_name,\
-                                 GRN_TABLE_MAX_KEY_SIZE);\
-  ERR(GRN_INVALID_ARGUMENT, "<%.*s>: failed to cast to <%.*s>: <%.*s>",\
-      column_name_size, column_name,\
-      range_name_size, range_name,\
-      (int)GRN_TEXT_LEN(&inspected), GRN_TEXT_VALUE(&inspected));\
-  GRN_OBJ_FIN(ctx, &inspected);\
-} while (0)
-
 inline static grn_id
 grn_table_add_v_inline(grn_ctx *ctx, grn_obj *table, const void *key, int key_size,
                        void **value, int *added);
@@ -5536,7 +5517,7 @@ grn_obj_set_value_column_var_size_vector(grn_ctx *ctx, grn_obj *obj, grn_id id,
             if (rc) {
               grn_obj *range_obj;
               range_obj = grn_ctx_at(ctx, range);
-              REPORT_CAST_ERROR(obj, range_obj, &value_buf);
+              ERR_CAST(obj, range_obj, &value_buf);
               grn_obj_unlink(ctx, range_obj);
             } else {
               value_ptr = GRN_BULK_HEAD(&cast_buf);
@@ -5610,7 +5591,7 @@ grn_obj_set_value_column_fix_size(grn_ctx *ctx, grn_obj *obj, grn_id id,
     if (rc) {
       grn_obj *range_obj;
       range_obj = grn_ctx_at(ctx, range);
-      REPORT_CAST_ERROR(obj, range_obj, value);
+      ERR_CAST(obj, range_obj, value);
       grn_obj_unlink(ctx, range_obj);
     } else {
       value_ = &buf;
@@ -5743,7 +5724,7 @@ grn_obj_set_value_column_index(grn_ctx *ctx, grn_obj *obj, grn_id id,
       GRN_BULK_REWIND(&token_buffer);
       rc = grn_obj_cast(ctx, &key_buffer, &token_buffer, GRN_TRUE);
       if (rc != GRN_SUCCESS) {
-        REPORT_CAST_ERROR(obj, range, value);
+        ERR_CAST(obj, range, value);
         break;
       }
       token_id = GRN_RECORD_VALUE(&token_buffer);
@@ -9604,7 +9585,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(column, range, element);
+          ERR_CAST(column, range, element);
         }
         element = &record;
       }
@@ -9625,7 +9606,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(column, range, element);
+              ERR_CAST(column, range, element);
             }
             element = &casted_element;
           }
@@ -9651,7 +9632,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(column, range, element);
+            ERR_CAST(column, range, element);
           }
           element = &casted_element;
         }
@@ -9701,7 +9682,7 @@ set_index_value(grn_ctx *ctx, grn_obj *column, grn_id id, grn_obj *index_value)
       if (rc != GRN_SUCCESS) {
         grn_obj *range;
         range = grn_ctx_at(ctx, weight_buffer.header.domain);
-        REPORT_CAST_ERROR(column, range, weight);
+        ERR_CAST(column, range, weight);
         grn_obj_unlink(ctx, range);
         break;
       }
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index