[Groonga-commit] groonga/groonga at 12a6b93 [master] mrb: move type check code to mruby

Back to archive index

Kouhei Sutou null+****@clear*****
Sun Jun 8 17:25:51 JST 2014


Kouhei Sutou	2014-06-08 17:25:51 +0900 (Sun, 08 Jun 2014)

  New Revision: 12a6b93806d053e3133e5e793c309d4b1d12f230
  https://github.com/groonga/groonga/commit/12a6b93806d053e3133e5e793c309d4b1d12f230

  Message:
    mrb: move type check code to mruby

  Modified files:
    lib/mrb/mrb_expr.c
    lib/mrb/scripts/scan_info.rb

  Modified: lib/mrb/mrb_expr.c (+4 -8)
===================================================================
--- lib/mrb/mrb_expr.c    2014-06-08 15:10:49 +0900 (0531f2d)
+++ lib/mrb/mrb_expr.c    2014-06-08 17:25:51 +0900 (0e03760)
@@ -356,16 +356,12 @@ scan_info_build(grn_ctx *ctx, grn_obj *expr, int *n,
           int k;
           grn_obj *arg, **p = &arg;
           for (k = 0; (arg = grn_scan_info_get_arg(ctx, si, k)) ; k++) {
-            if (GRN_DB_OBJP(*p)) {
-              mrb_value mrb_target;
-              mrb_target = grn_mrb_value_from_grn_obj(mrb, *p);
-              mrb_funcall(mrb, mrb_si, "resolve_index_db_obj", 1, mrb_target);
-            } else if (GRN_ACCESSORP(*p)) {
+            if ((*p)->header.type == GRN_BULK) {
+              mrb_funcall(mrb, mrb_si, "query=", 1, mrb_cptr_value(mrb, *p));
+            } else {
               mrb_value mrb_target;
               mrb_target = grn_mrb_value_from_grn_obj(mrb, *p);
-              mrb_funcall(mrb, mrb_si, "resolve_index_accessor", 1, mrb_target);
-            } else {
-              mrb_funcall(mrb, mrb_si, "query=", 1, mrb_cptr_value(mrb, *p));
+              mrb_funcall(mrb, mrb_si, "resolve_index", 1, mrb_target);
             }
           }
         }

  Modified: lib/mrb/scripts/scan_info.rb (+9 -0)
===================================================================
--- lib/mrb/scripts/scan_info.rb    2014-06-08 15:10:49 +0900 (5b2b198)
+++ lib/mrb/scripts/scan_info.rb    2014-06-08 17:25:51 +0900 (d54bbfa)
@@ -7,6 +7,15 @@ module Groonga
       PRE_CONST = 0x08
     end
 
+    def resolve_index(object)
+      if object.is_a?(Accessor)
+        resolve_index_accessor(object)
+      else
+        resolve_index_db_obj(object)
+      end
+    end
+
+    private
     def resolve_index_db_obj(db_obj)
       index_info = db_obj.find_index(op)
       return if index_info.nil?
-------------- next part --------------
HTML����������������������������...
下载 



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