[Groonga-commit] groonga/groonga at 61864e7 [master] Export GRN_TRUEP() as GRN_OBJ_IS_TRUE()

Back to archive index

Kouhei Sutou null+****@clear*****
Sun Oct 25 23:37:35 JST 2015


Kouhei Sutou	2015-10-25 23:37:35 +0900 (Sun, 25 Oct 2015)

  New Revision: 61864e78f50f4d6f5d518a48ef29902a8a8d4c6c
  https://github.com/groonga/groonga/commit/61864e78f50f4d6f5d518a48ef29902a8a8d4c6c

  Message:
    Export GRN_TRUEP() as GRN_OBJ_IS_TRUE()

  Modified files:
    include/groonga/obj.h
    lib/db.c
    lib/expr.c
    lib/grn_db.h
    lib/mrb/mrb_index_cursor.c
    lib/proc.c

  Modified: include/groonga/obj.h (+42 -0)
===================================================================
--- include/groonga/obj.h    2015-10-22 14:39:25 +0900 (14a4ead)
+++ include/groonga/obj.h    2015-10-25 23:37:35 +0900 (f22ba60)
@@ -23,6 +23,48 @@
 extern "C" {
 #endif
 
+#define GRN_OBJ_IS_TRUE(ctx, obj, result) do {  \
+  grn_obj *obj_ = (obj);                        \
+  switch (obj_->header.type) {                  \
+  case GRN_BULK :                               \
+    switch (obj_->header.domain) {              \
+    case GRN_DB_BOOL :                          \
+      result = GRN_BOOL_VALUE(obj_);            \
+      break;                                    \
+    case GRN_DB_INT32 :                         \
+      result = GRN_INT32_VALUE(obj_) != 0;      \
+      break;                                    \
+    case GRN_DB_UINT32 :                        \
+      result = GRN_UINT32_VALUE(obj_) != 0;     \
+      break;                                    \
+    case GRN_DB_FLOAT :                         \
+      {                                         \
+        double float_value;                     \
+        float_value = GRN_FLOAT_VALUE(obj_);    \
+        result = (float_value < -DBL_EPSILON || \
+                  DBL_EPSILON < float_value);   \
+      }                                         \
+      break;                                    \
+    case GRN_DB_SHORT_TEXT :                    \
+    case GRN_DB_TEXT :                          \
+    case GRN_DB_LONG_TEXT :                     \
+      result = GRN_TEXT_LEN(obj_) != 0;         \
+      break;                                    \
+    default :                                   \
+      result = GRN_FALSE;                       \
+      break;                                    \
+    }                                           \
+    break;                                      \
+  case GRN_VECTOR :                             \
+    result = GRN_TRUE;                          \
+    break;                                      \
+  default :                                     \
+    result = GRN_FALSE;                         \
+    break;                                      \
+  }                                             \
+} while (0)
+
+
 GRN_API grn_bool grn_obj_is_builtin(grn_ctx *ctx, grn_obj *obj);
 GRN_API grn_bool grn_obj_is_table(grn_ctx *ctx, grn_obj *obj);
 GRN_API grn_bool grn_obj_is_type(grn_ctx *ctx, grn_obj *obj);

  Modified: lib/db.c (+1 -1)
===================================================================
--- lib/db.c    2015-10-22 14:39:25 +0900 (c4f2fe6)
+++ lib/db.c    2015-10-25 23:37:35 +0900 (381a31f)
@@ -12291,7 +12291,7 @@ loader_add(grn_ctx *ctx, grn_obj *key)
     unsigned int result_boolean;
     GRN_RECORD_SET(ctx, v, id);
     result = grn_expr_exec(ctx, loader->ifexists, 0);
-    GRN_TRUEP(ctx, result, result_boolean);
+    GRN_OBJ_IS_TRUE(ctx, result, result_boolean);
     if (!result_boolean) { id = 0; }
   }
   return id;

  Modified: lib/expr.c (+8 -8)
===================================================================
--- lib/expr.c    2015-10-22 14:39:25 +0900 (3150125)
+++ lib/expr.c    2015-10-25 23:37:35 +0900 (5590870)
@@ -2735,7 +2735,7 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           grn_obj *v;
           unsigned int v_boolean;
           POP1(v);
-          GRN_TRUEP(ctx, v, v_boolean);
+          GRN_OBJ_IS_TRUE(ctx, v, v_boolean);
           if (!v_boolean) { code += code->nargs; }
         }
         code++;
@@ -2931,9 +2931,9 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           unsigned int x_boolean, y_boolean;
           grn_obj *result = NULL;
           POP2ALLOC1(x, y, res);
-          GRN_TRUEP(ctx, x, x_boolean);
+          GRN_OBJ_IS_TRUE(ctx, x, x_boolean);
           if (x_boolean) {
-            GRN_TRUEP(ctx, y, y_boolean);
+            GRN_OBJ_IS_TRUE(ctx, y, y_boolean);
             if (y_boolean) {
               result = y;
             }
@@ -2956,11 +2956,11 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           unsigned int x_boolean, y_boolean;
           grn_obj *result;
           POP2ALLOC1(x, y, res);
-          GRN_TRUEP(ctx, x, x_boolean);
+          GRN_OBJ_IS_TRUE(ctx, x, x_boolean);
           if (x_boolean) {
             result = x;
           } else {
-            GRN_TRUEP(ctx, y, y_boolean);
+            GRN_OBJ_IS_TRUE(ctx, y, y_boolean);
             if (y_boolean) {
               result = y;
             } else {
@@ -2984,8 +2984,8 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           grn_obj *x, *y;
           grn_bool x_boolean, y_boolean;
           POP2ALLOC1(x, y, res);
-          GRN_TRUEP(ctx, x, x_boolean);
-          GRN_TRUEP(ctx, y, y_boolean);
+          GRN_OBJ_IS_TRUE(ctx, x, x_boolean);
+          GRN_OBJ_IS_TRUE(ctx, y, y_boolean);
           grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
           if (!x_boolean || y_boolean) {
             GRN_BOOL_SET(ctx, res, GRN_FALSE);
@@ -3519,7 +3519,7 @@ grn_expr_exec(grn_ctx *ctx, grn_obj *expr, int nargs)
           grn_obj *value;
           grn_bool value_boolean;
           POP1ALLOC1(value, res);
-          GRN_TRUEP(ctx, value, value_boolean);
+          GRN_OBJ_IS_TRUE(ctx, value, value_boolean);
           grn_obj_reinit(ctx, res, GRN_DB_BOOL, 0);
           GRN_BOOL_SET(ctx, res, !value_boolean);
         }

  Modified: lib/grn_db.h (+0 -40)
===================================================================
--- lib/grn_db.h    2015-10-22 14:39:25 +0900 (f647f14)
+++ lib/grn_db.h    2015-10-25 23:37:35 +0900 (89e65d9)
@@ -369,46 +369,6 @@ grn_rc grn_db_obj_init(grn_ctx *ctx, grn_obj *db, grn_id id, grn_db_obj *obj);
 #define GRN_ACCESSORP(obj) \
   ((obj) && (((grn_obj *)(obj))->header.type == GRN_ACCESSOR))
 
-#define GRN_TRUEP(ctx, v, result) do {\
-  switch (v->header.type) {                             \
-  case GRN_BULK :                                       \
-    switch (v->header.domain) {                         \
-    case GRN_DB_BOOL :                                  \
-      result = GRN_BOOL_VALUE(v);                       \
-      break;                                            \
-    case GRN_DB_INT32 :                                 \
-      result = GRN_INT32_VALUE(v) != 0;                 \
-      break;                                            \
-    case GRN_DB_UINT32 :                                \
-      result = GRN_UINT32_VALUE(v) != 0;                \
-      break;                                            \
-    case GRN_DB_FLOAT :                                 \
-      {                                                 \
-        double float_value;                             \
-        float_value = GRN_FLOAT_VALUE(v);               \
-        result = (float_value < -DBL_EPSILON ||         \
-                  DBL_EPSILON < float_value);           \
-      }                                                 \
-      break;                                            \
-    case GRN_DB_SHORT_TEXT :                            \
-    case GRN_DB_TEXT :                                  \
-    case GRN_DB_LONG_TEXT :                             \
-      result = GRN_TEXT_LEN(v) != 0;                    \
-      break;                                            \
-    default :                                           \
-      result = GRN_FALSE;                               \
-      break;                                            \
-    }                                                   \
-    break;                                              \
-  case GRN_VECTOR :                                     \
-    result = GRN_TRUE;                                  \
-    break;                                              \
-  default :                                             \
-    result = GRN_FALSE;                                 \
-    break;                                              \
-  }                                                     \
-} while (0)
-
 grn_id grn_obj_register(grn_ctx *ctx, grn_obj *db, const char *name, unsigned int name_size);
 int grn_obj_is_persistent(grn_ctx *ctx, grn_obj *obj);
 void grn_obj_spec_save(grn_ctx *ctx, grn_db_obj *obj);

  Modified: lib/mrb/mrb_index_cursor.c (+1 -1)
===================================================================
--- lib/mrb/mrb_index_cursor.c    2015-10-22 14:39:25 +0900 (c99eae0)
+++ lib/mrb/mrb_index_cursor.c    2015-10-25 23:37:35 +0900 (42b3fa2)
@@ -180,7 +180,7 @@ mrb_grn_index_cursor_select(mrb_state *mrb, mrb_value self)
         grn_mrb_ctx_check(mrb);
         continue;
       }
-      GRN_TRUEP(ctx, matched, matched_raw);
+      GRN_OBJ_IS_TRUE(ctx, matched, matched_raw);
       if (!matched_raw) {
         continue;
       }

  Modified: lib/proc.c (+3 -3)
===================================================================
--- lib/proc.c    2015-10-22 14:39:25 +0900 (436c0c5)
+++ lib/proc.c    2015-10-25 23:37:35 +0900 (553d908)
@@ -5727,7 +5727,7 @@ func_between(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
   result = grn_expr_exec(ctx, between_expr, 0);
   if (result) {
     grn_bool result_boolean;
-    GRN_TRUEP(ctx, result, result_boolean);
+    GRN_OBJ_IS_TRUE(ctx, result, result_boolean);
     if (result_boolean) {
       GRN_BOOL_SET(ctx, found, GRN_TRUE);
     }
@@ -5921,7 +5921,7 @@ selector_between_sequential_search(grn_ctx *ctx,
       }
       if (result) {
         grn_bool result_boolean;
-        GRN_TRUEP(ctx, result, result_boolean);
+        GRN_OBJ_IS_TRUE(ctx, result, result_boolean);
         if (result_boolean) {
           grn_posting posting;
           posting.rid = record_id;
@@ -6765,7 +6765,7 @@ proc_range_filter(grn_ctx *ctx, int nargs, grn_obj **args,
               break;
             }
             if (result) {
-              GRN_TRUEP(ctx, result, result_boolean);
+              GRN_OBJ_IS_TRUE(ctx, result, result_boolean);
             }
           } else {
             result_boolean = GRN_TRUE;
-------------- next part --------------
HTML����������������������������...
Download 



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