summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2022-12-27 11:21:46 +0900
committerNobuyoshi Nakada <[email protected]>2023-03-15 13:59:11 +0900
commitce47ee00ae295b31dc023afb935a60ecc39a1f4b (patch)
treeaae50ba7487dba8f10c2ed7d473db0f9deb7aa39
parent04a2550928c3e0122e976fcf87c56f59b8a071ff (diff)
Fix indirect counter increment
`*pcnt++` just dereferences `pcnt` then increments the local variable, but has no side effect.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/7496
-rw-r--r--bootstraptest/test_ractor.rb3
-rw-r--r--ractor.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/bootstraptest/test_ractor.rb b/bootstraptest/test_ractor.rb
index 96c0f276a1..f92b604d2a 100644
--- a/bootstraptest/test_ractor.rb
+++ b/bootstraptest/test_ractor.rb
@@ -1494,8 +1494,9 @@ assert_equal "#{n}#{n}", %Q{
# NameError
assert_equal "ok", %q{
+ obj = "".freeze # NameError refers the receiver indirectly
begin
- bar
+ obj.bar
rescue => err
end
begin
diff --git a/ractor.c b/ractor.c
index c18219e683..8c367e17cb 100644
--- a/ractor.c
+++ b/ractor.c
@@ -3127,7 +3127,7 @@ obj_refer_only_shareables_p_i(VALUE obj, void *ptr)
int *pcnt = (int *)ptr;
if (!rb_ractor_shareable_p(obj)) {
- *pcnt++;
+ ++*pcnt;
}
}