diff options
| author | U.Nakamura <usa@ruby-lang.org> | 2023-11-20 21:11:21 +0900 |
|---|---|---|
| committer | U.Nakamura <usa@ruby-lang.org> | 2023-11-20 21:11:21 +0900 |
| commit | 1cae5e7ceaca7304108fdec35d4858a9e4ff7fe0 (patch) | |
| tree | 23053c40ef7b39a13364b836837cda53362c6d8b /test | |
| parent | 0880158f6bbbe6eaf35b6cc866016fec7610ba2e (diff) | |
merge revision(s) 9eac9d71786a8dbec520d0541a91149f01adf8ea: [Backport #19969]
[Bug #19969] Compact st_table after deleted if possible
---
hash.c | 19 +++++++++++++++++++
st.c | 40 +++++++++++++++++++++++++++++-----------
test/ruby/test_hash.rb | 9 +++++++++
3 files changed, 57 insertions(+), 11 deletions(-)
Diffstat (limited to 'test')
| -rw-r--r-- | test/ruby/test_hash.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/test/ruby/test_hash.rb b/test/ruby/test_hash.rb index eaff09d434..683ec3855d 100644 --- a/test/ruby/test_hash.rb +++ b/test/ruby/test_hash.rb @@ -1733,6 +1733,15 @@ class TestHash < Test::Unit::TestCase assert_no_memory_leak([], prepare, code, bug9187) end + def test_memory_size_after_delete + require 'objspace' + h = {} + 1000.times {|i| h[i] = true} + big = ObjectSpace.memsize_of(h) + 1000.times {|i| h.delete(i)} + assert_operator ObjectSpace.memsize_of(h), :<, big/10 + end + def test_wrapper bug9381 = '[ruby-core:59638] [Bug #9381]' |
