diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-03 20:33:21 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-03 20:33:21 +0900 |
| commit | fdf87b7a3f7912adcce9dae0c59e361627a851f4 (patch) | |
| tree | c9bb5f18d8ba20bb57247ef07e125ee82eeabb12 | |
| parent | 19c3c957fc195fdf0b90d84d1e4e8307594efc80 (diff) | |
| parent | 6b6f893773562276438f2071073cf99bb27ccd7d (diff) | |
| download | mruby-fdf87b7a3f7912adcce9dae0c59e361627a851f4.tar.gz mruby-fdf87b7a3f7912adcce9dae0c59e361627a851f4.zip | |
Merge branch 'master' of github.com:mruby/mruby
| -rw-r--r-- | include/mruby/khash.h | 5 | ||||
| -rw-r--r-- | mrbgems/mruby-array-ext/test/array.rb | 7 | ||||
| -rw-r--r-- | mrbgems/mruby-objectspace/src/mruby_objectspace.c | 1 | ||||
| -rw-r--r-- | mrbgems/mruby-objectspace/test/objectspace.rb | 2 | ||||
| -rw-r--r-- | tasks/mrbgems_test.rake | 4 | ||||
| -rw-r--r-- | test/no_mrb_open_test_dummy.rb | 2 |
6 files changed, 17 insertions, 4 deletions
diff --git a/include/mruby/khash.h b/include/mruby/khash.h index 67418a996..5121f4708 100644 --- a/include/mruby/khash.h +++ b/include/mruby/khash.h @@ -46,6 +46,7 @@ static const uint8_t __m_either[] = {0x03, 0x0c, 0x30, 0xc0}; } while (0) #define khash_mask(h) ((h)->n_buckets-1) #define khash_inc(h) ((h)->n_buckets/2-1) +#define khash_upper_bound(h) (UPPER_BOUND((h)->n_buckets)) /* declare struct kh_xxx and kh_xxx_funcs @@ -59,7 +60,6 @@ static const uint8_t __m_either[] = {0x03, 0x0c, 0x30, 0xc0}; khint_t n_buckets; \ khint_t size; \ khint_t n_occupied; \ - khint_t upper_bound; \ uint8_t *ed_flags; \ khkey_t *keys; \ khval_t *vals; \ @@ -99,7 +99,6 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len) size_t len = sizeof(khkey_t) + (kh_is_map ? sizeof(khval_t) : 0); \ uint8_t *p = (uint8_t*)mrb_malloc(mrb, sizeof(uint8_t)*sz/4+len*sz); \ h->size = h->n_occupied = 0; \ - h->upper_bound = UPPER_BOUND(sz); \ h->keys = (khkey_t *)p; \ h->vals = kh_is_map ? (khval_t *)(p+sizeof(khkey_t)*sz) : NULL; \ h->ed_flags = p+len*sz; \ @@ -170,7 +169,7 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len) khint_t kh_put_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key) \ { \ khint_t k; \ - if (h->n_occupied >= h->upper_bound) { \ + if (h->n_occupied >= khash_upper_bound(h)) { \ kh_resize_##name(mrb, h, h->n_buckets*2); \ } \ k = __hash_func(mrb,key) & khash_mask(h); \ diff --git a/mrbgems/mruby-array-ext/test/array.rb b/mrbgems/mruby-array-ext/test/array.rb index ed1edb5c2..8c6a7bd54 100644 --- a/mrbgems/mruby-array-ext/test/array.rb +++ b/mrbgems/mruby-array-ext/test/array.rb @@ -139,5 +139,10 @@ assert("Array#reverse_each") do b << i end assert_equal [ "d", "c", "b", "a" ], b - assert_equal [ "d", "c", "b", "a" ], a.reverse_each.to_a + + if Object.const_defined?(:Enumerator) + assert_equal [ "d", "c", "b", "a" ], a.reverse_each.to_a + else + true + end end diff --git a/mrbgems/mruby-objectspace/src/mruby_objectspace.c b/mrbgems/mruby-objectspace/src/mruby_objectspace.c index 938eb1716..02a85af05 100644 --- a/mrbgems/mruby-objectspace/src/mruby_objectspace.c +++ b/mrbgems/mruby-objectspace/src/mruby_objectspace.c @@ -90,6 +90,7 @@ os_count_objects(mrb_state *mrb, mrb_value self) COUNT_TYPE(T_FILE); COUNT_TYPE(T_ENV); COUNT_TYPE(T_DATA); + COUNT_TYPE(T_FIBER); #undef COUNT_TYPE default: type = mrb_fixnum_value(i); break; diff --git a/mrbgems/mruby-objectspace/test/objectspace.rb b/mrbgems/mruby-objectspace/test/objectspace.rb index 2362fd3f0..e70650e84 100644 --- a/mrbgems/mruby-objectspace/test/objectspace.rb +++ b/mrbgems/mruby-objectspace/test/objectspace.rb @@ -1,5 +1,6 @@ assert('ObjectSpace.count_objects') do h = {} + f = Fiber.new {} if Object.const_defined? :Fiber ObjectSpace.count_objects(h) assert_kind_of(Hash, h) assert_true(h.keys.all? {|x| x.is_a?(Symbol) || x.is_a?(Integer) }) @@ -7,6 +8,7 @@ assert('ObjectSpace.count_objects') do assert_true(h.has_key?(:TOTAL)) assert_true(h.has_key?(:FREE)) + assert_true(h.has_key?(:T_FIBER)) if Object.const_defined? :Fiber h = ObjectSpace.count_objects assert_kind_of(Hash, h) diff --git a/tasks/mrbgems_test.rake b/tasks/mrbgems_test.rake index 4c27686f2..b29a57f3d 100644 --- a/tasks/mrbgems_test.rake +++ b/tasks/mrbgems_test.rake @@ -111,6 +111,10 @@ MRuby.each_target do no_mrb_open_test_rbfiles = no_mrb_open_test_gem.reduce([]) { |res, v| res += v.test_rbfiles } + if no_mrb_open_test_rbfiles.empty? + no_mrb_open_test_rbfiles << "#{MRUBY_ROOT}/test/no_mrb_open_test_dummy.rb" + end + file "#{no_mrb_open_test}.o" => "#{no_mrb_open_test}.c" file "#{no_mrb_open_test}.c" => no_mrb_open_test_rbfiles do |t| open(t.name, 'w') do |f| diff --git a/test/no_mrb_open_test_dummy.rb b/test/no_mrb_open_test_dummy.rb new file mode 100644 index 000000000..5181c0a45 --- /dev/null +++ b/test/no_mrb_open_test_dummy.rb @@ -0,0 +1,2 @@ +#dummy + |
