From 6fe46ff967215e47ab2234e9b48663d2e3608081 Mon Sep 17 00:00:00 2001 From: Matt Valentine-House Date: Mon, 12 Jun 2023 13:13:32 +0100 Subject: When alloc size is too large, only allocate struct --- test/ruby/test_struct.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_struct.rb b/test/ruby/test_struct.rb index 78a81c5200..ed750b91f7 100644 --- a/test/ruby/test_struct.rb +++ b/test/ruby/test_struct.rb @@ -41,6 +41,14 @@ module TestStruct end end + def test_larger_than_largest_pool + count = (GC::INTERNAL_CONSTANTS[:RVARGC_MAX_ALLOCATE_SIZE] / RbConfig::SIZEOF["void*"]) + 1 + list = Array(0..count) + klass = @Struct.new(*list.map { |i| :"a_#{i}"}) + struct = klass.new(*list) + assert_equal 0, struct.a_0 + end + def test_small_structs names = [:a, :b, :c, :d] 1.upto(4) {|n| -- cgit v1.2.3