diff options
author | Kenta Murata <[email protected]> | 2020-11-30 14:53:13 +0900 |
---|---|---|
committer | GitHub <[email protected]> | 2020-11-30 14:53:13 +0900 |
commit | 73a337e21461469290005f169c05bc1791112d67 (patch) | |
tree | 2fd489d7b3c6993b3a818fa7fe305695648d0268 /test/ruby/test_memory_view.rb | |
parent | 7e1dbe59759247ae0df26ef3f669009f00e058fd (diff) |
Keep references of memory-view-exported objects (#3816)
* memory_view.c: remove a reference in view->obj at rb_memory_view_release
* memory_view.c: keep references of memory-view-exported objects
* Update common.mk
* memory_view.c: Use st_update
Notes
Notes:
Merged-By: mrkn <[email protected]>
Diffstat (limited to 'test/ruby/test_memory_view.rb')
-rw-r--r-- | test/ruby/test_memory_view.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/ruby/test_memory_view.rb b/test/ruby/test_memory_view.rb index 7a5ebb994c..668d738974 100644 --- a/test/ruby/test_memory_view.rb +++ b/test/ruby/test_memory_view.rb @@ -197,6 +197,14 @@ class TestMemoryView < Test::Unit::TestCase assert_equal(expected_result, members) end + def test_ref_count_with_exported_object + es = MemoryViewTestUtils::ExportableString.new("ruby") + assert_equal(1, MemoryViewTestUtils.ref_count_while_exporting(es, 1)) + assert_equal(2, MemoryViewTestUtils.ref_count_while_exporting(es, 2)) + assert_equal(10, MemoryViewTestUtils.ref_count_while_exporting(es, 10)) + assert_nil(MemoryViewTestUtils.ref_count_while_exporting(es, 0)) + end + def test_rb_memory_view_init_as_byte_array # ExportableString's memory view is initialized by rb_memory_view_init_as_byte_array es = MemoryViewTestUtils::ExportableString.new("ruby") |