Changeset 439 for EcnlProtoTool/trunk/mruby-2.1.1/src/enum.c
- Timestamp:
- Jul 9, 2020, 8:51:43 AM (4 years ago)
- Location:
- EcnlProtoTool/trunk/mruby-2.1.1
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/mruby-2.1.1/src/enum.c
r331 r439 6 6 7 7 #include <mruby.h> 8 #include <mruby/proc.h> 9 10 /* internal method `__update_hash(oldhash, index, itemhash)` */ 11 static mrb_value 12 enum_update_hash(mrb_state *mrb, mrb_value self) 13 { 14 mrb_int hash; 15 mrb_int index; 16 mrb_int hv; 17 18 mrb_get_args(mrb, "iii", &hash, &index, &hv); 19 hash ^= ((uint32_t)hv << (index % 16)); 20 21 return mrb_fixnum_value(hash); 22 } 8 23 9 24 void 10 25 mrb_init_enumerable(mrb_state *mrb) 11 26 { 12 mrb_define_module(mrb, "Enumerable"); /* 15.3.2 */ 27 struct RClass *enumerable; 28 enumerable = mrb_define_module(mrb, "Enumerable"); /* 15.3.2 */ 29 mrb_define_module_function(mrb, enumerable, "__update_hash", enum_update_hash, MRB_ARGS_REQ(3)); 13 30 } 14
Note:
See TracChangeset
for help on using the changeset viewer.