[Groonga-commit] groonga/groonga at c3ddff1 [master] mrb: bind grn_obj_close()

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Dec 17 11:25:59 JST 2014


Kouhei Sutou	2014-12-17 11:25:59 +0900 (Wed, 17 Dec 2014)

  New Revision: c3ddff152336635f6cd71381a9d2c5260ee00718
  https://github.com/groonga/groonga/commit/c3ddff152336635f6cd71381a9d2c5260ee00718

  Message:
    mrb: bind grn_obj_close()

  Modified files:
    lib/mrb/mrb_obj.c

  Modified: lib/mrb/mrb_obj.c (+18 -0)
===================================================================
--- lib/mrb/mrb_obj.c    2014-12-17 11:22:09 +0900 (dc7d045)
+++ lib/mrb/mrb_obj.c    2014-12-17 11:25:59 +0900 (955c248)
@@ -111,6 +111,23 @@ object_equal(mrb_state *mrb, mrb_value self)
   }
 }
 
+static mrb_value
+object_close(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+  grn_obj *object;
+
+  object = DATA_PTR(self);
+  if (!object) {
+    mrb_raise(mrb, E_ARGUMENT_ERROR, "already closed object");
+  }
+
+  grn_obj_close(ctx, object);
+  DATA_PTR(self) = NULL;
+
+  return mrb_nil_value();
+}
+
 void
 grn_mrb_obj_init(grn_ctx *ctx)
 {
@@ -129,6 +146,7 @@ grn_mrb_obj_init(grn_ctx *ctx)
   mrb_define_method(mrb, klass, "grn_inspect",
                     object_grn_inspect, MRB_ARGS_NONE());
   mrb_define_method(mrb, klass, "==", object_equal, MRB_ARGS_REQ(1));
+  mrb_define_method(mrb, klass, "close", object_close, MRB_ARGS_NONE());
 
   grn_mrb_load(ctx, "index_info.rb");
 }
-------------- next part --------------
HTML����������������������������...
Download 



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