Kouhei Sutou
null+****@clear*****
Thu Apr 7 12:44:27 JST 2016
Kouhei Sutou 2016-04-07 12:44:27 +0900 (Thu, 07 Apr 2016) New Revision: 70f8afd6904aeab576ca8a77099ec769ecac9fdd https://github.com/groonga/groonga/commit/70f8afd6904aeab576ca8a77099ec769ecac9fdd Message: mrb: support Groonga::Object as Hash key Modified files: lib/mrb/mrb_object.c Modified: lib/mrb/mrb_object.c (+11 -0) =================================================================== --- lib/mrb/mrb_object.c 2016-04-07 10:30:58 +0900 (c1af52f) +++ lib/mrb/mrb_object.c 2016-04-07 12:44:27 +0900 (d8b74d6) @@ -122,6 +122,15 @@ object_equal(mrb_state *mrb, mrb_value self) } static mrb_value +object_hash(mrb_state *mrb, mrb_value self) +{ + grn_obj *object; + + object = DATA_PTR(self); + return mrb_fixnum_value((mrb_int)((uint64_t)object)); +} + +static mrb_value object_close(mrb_state *mrb, mrb_value self) { grn_ctx *ctx = (grn_ctx *)mrb->ud; @@ -241,6 +250,8 @@ grn_mrb_object_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, "eql?", object_equal, MRB_ARGS_REQ(1)); + mrb_define_method(mrb, klass, "hash", object_hash, MRB_ARGS_NONE()); mrb_define_method(mrb, klass, "close", object_close, MRB_ARGS_NONE()); mrb_define_method(mrb, klass, "remove", object_remove, MRB_ARGS_OPT(1)); -------------- next part -------------- HTML����������������������������... Télécharger