[Groonga-commit] groonga/groonga at 9a2af44 [master] mrb: handle error case

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Aug 20 22:43:04 JST 2014


Kouhei Sutou	2014-08-20 22:43:04 +0900 (Wed, 20 Aug 2014)

  New Revision: 9a2af44063f02270d4512a30241b4ddec7096b98
  https://github.com/groonga/groonga/commit/9a2af44063f02270d4512a30241b4ddec7096b98

  Message:
    mrb: handle error case

  Modified files:
    lib/mrb/mrb_bulk.c

  Modified: lib/mrb/mrb_bulk.c (+27 -0)
===================================================================
--- lib/mrb/mrb_bulk.c    2014-08-20 22:26:30 +0900 (746ba78)
+++ lib/mrb/mrb_bulk.c    2014-08-20 22:43:04 +0900 (b7bd3e7)
@@ -74,6 +74,33 @@ mrb_grn_bulk_get_value(mrb_state *mrb, mrb_value self)
       mrb_value_ = mrb_fixnum_value(value);
     }
     break;
+  default :
+    {
+#define MESSAGE_SIZE 4096
+      char message[MESSAGE_SIZE];
+      grn_ctx *ctx = (grn_ctx *)mrb->ud;
+      grn_obj *domain;
+      char domain_name[GRN_TABLE_MAX_KEY_SIZE];
+      int domain_name_size;
+
+      domain = grn_ctx_at(ctx, bulk->header.domain);
+      if (domain) {
+        domain_name_size = grn_obj_name(ctx, domain,
+                                        domain_name, GRN_TABLE_MAX_KEY_SIZE);
+        grn_obj_unlink(ctx, domain);
+      } else {
+        strcpy(domain_name, "unknown");
+        domain_name_size = strlen(domain_name);
+      }
+      snprintf(message, MESSAGE_SIZE,
+               "unsupported bulk value type: <%d>(%.*s)",
+               bulk->header.domain,
+               domain_name_size,
+               domain_name);
+      mrb_raise(mrb, E_RANGE_ERROR, message);
+#undef MESSAGE_SIZE
+    }
+    break;
   }
 
   return mrb_value_;
-------------- next part --------------
HTML����������������������������...
Download 



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