Kouhei Sutou
null+****@clear*****
Fri Mar 18 12:26:10 JST 2016
Kouhei Sutou 2016-03-18 12:26:10 +0900 (Fri, 18 Mar 2016) New Revision: dc862837c7b754de05ad85be06ef931778144bf1 https://github.com/groonga/groonga/commit/dc862837c7b754de05ad85be06ef931778144bf1 Message: mrb: support grn_obj_remove_dependent() Modified files: lib/mrb/mrb_object.c Modified: lib/mrb/mrb_object.c (+17 -3) =================================================================== --- lib/mrb/mrb_object.c 2016-03-18 10:27:43 +0900 (367f98d) +++ lib/mrb/mrb_object.c 2016-03-18 12:26:10 +0900 (06c834c) @@ -1,6 +1,6 @@ /* -*- c-basic-offset: 2 -*- */ /* - Copyright(C) 2013-2015 Brazil + Copyright(C) 2013-2016 Brazil This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -29,6 +29,7 @@ #include "mrb_ctx.h" #include "mrb_object.h" #include "mrb_operator.h" +#include "mrb_options.h" #include "mrb_converter.h" mrb_value @@ -141,10 +142,23 @@ static mrb_value object_remove(mrb_state *mrb, mrb_value self) { grn_ctx *ctx = (grn_ctx *)mrb->ud; + mrb_value mrb_options; + grn_bool dependent = GRN_FALSE; grn_obj *object; + mrb_get_args(mrb, "o", &mrb_options); + if (!mrb_nil_p(mrb_options)) { + mrb_value mrb_dependent; + mrb_dependent = grn_mrb_options_get_lit(mrb, mrb_options, "dependent"); + dependent = mrb_test(mrb_dependent); + } + object = DATA_PTR(self); - grn_obj_remove(ctx, object); + if (dependent) { + grn_obj_remove_dependent(ctx, object); + } else { + grn_obj_remove(ctx, object); + } grn_mrb_ctx_check(mrb); DATA_PTR(self) = NULL; @@ -228,7 +242,7 @@ grn_mrb_object_init(grn_ctx *ctx) 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()); - mrb_define_method(mrb, klass, "remove", object_remove, MRB_ARGS_NONE()); + mrb_define_method(mrb, klass, "remove", object_remove, MRB_ARGS_OPT(1)); mrb_define_method(mrb, klass, "domain_id", object_get_domain_id, MRB_ARGS_NONE()); -------------- next part -------------- HTML����������������������������...Télécharger