diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-02-14 01:29:19 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-02-14 01:29:19 +0900 |
| commit | ba8a8e75c777d29bdbdcea56513d188949f131ec (patch) | |
| tree | 7d068b32f439ef0f2a7c723015873a7e4a3ada32 /mrbgems | |
| parent | 69eaaa146ca8d50a2493556540b1e391d007150d (diff) | |
| parent | 4ffea85b62d49944524f4b5211b79f3009b8d3bd (diff) | |
| download | mruby-ba8a8e75c777d29bdbdcea56513d188949f131ec.tar.gz mruby-ba8a8e75c777d29bdbdcea56513d188949f131ec.zip | |
Merge pull request #1702 from cremno/hash-hash-ext-changes
hash / hash-ext: various small changes
Diffstat (limited to 'mrbgems')
| -rw-r--r-- | mrbgems/mruby-hash-ext/src/hash-ext.c | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/mrbgems/mruby-hash-ext/src/hash-ext.c b/mrbgems/mruby-hash-ext/src/hash-ext.c index c6e72f451..298559686 100644 --- a/mrbgems/mruby-hash-ext/src/hash-ext.c +++ b/mrbgems/mruby-hash-ext/src/hash-ext.c @@ -7,7 +7,6 @@ #include "mruby.h" #include "mruby/array.h" #include "mruby/hash.h" -#include "mruby/khash.h" /* * call-seq: @@ -20,27 +19,18 @@ * h.values_at("cow", "cat") #=> ["bovine", "feline"] */ -mrb_value -mrb_hash_values_at(mrb_state *mrb, int argc, mrb_value *argv, mrb_value hash) -{ - mrb_value result = mrb_ary_new_capa(mrb, argc); - long i; - - for (i=0; i<argc; i++) { - mrb_ary_push(mrb, result, mrb_hash_get(mrb, hash, argv[i])); - } - return result; -} - static mrb_value hash_values_at(mrb_state *mrb, mrb_value hash) { - mrb_value *argv; - int argc; + mrb_value *argv, result; + int argc, i; mrb_get_args(mrb, "*", &argv, &argc); - - return mrb_hash_values_at(mrb, argc, argv, hash); + result = mrb_ary_new_capa(mrb, argc); + for (i = 0; i < argc; i++) { + mrb_ary_push(mrb, result, mrb_hash_get(mrb, hash, argv[i])); + } + return result; } void @@ -49,8 +39,7 @@ mrb_mruby_hash_ext_gem_init(mrb_state *mrb) struct RClass *h; h = mrb->hash_class; - - mrb_define_method(mrb, h, "values_at", hash_values_at, MRB_ARGS_ANY()); + mrb_define_method(mrb, h, "values_at", hash_values_at, MRB_ARGS_ANY()); } void |
