summaryrefslogtreecommitdiff
path: root/ractor.c
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2022-10-15 09:37:44 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2022-10-15 10:44:10 -0700
commitf0654b1027d2f24cbb6e3cfb0c5946b70f06739b (patch)
treee49476db3318c77362e7ad21433df7832f0ede95 /ractor.c
parent8d20632df849833d8a98f3d6f5e61f32eefa0fa6 (diff)
downloadruby-f0654b1027d2f24cbb6e3cfb0c5946b70f06739b.tar.gz
More precisely iterate over Object instance variables
Shapes provides us with an (almost) exact count of instance variables. We only need to check for Qundef when an IV has been "undefined" Prefer to use ROBJECT_IV_COUNT when iterating IVs
Diffstat (limited to 'ractor.c')
-rw-r--r--ractor.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ractor.c b/ractor.c
index 3bd6c04af0..7fea312ab0 100644
--- a/ractor.c
+++ b/ractor.c
@@ -2312,7 +2312,7 @@ obj_traverse_i(VALUE obj, struct obj_traverse_data *data)
case T_OBJECT:
{
- uint32_t len = ROBJECT_NUMIV(obj);
+ uint32_t len = ROBJECT_IV_COUNT(obj);
VALUE *ptr = ROBJECT_IVPTR(obj);
for (uint32_t i=0; i<len; i++) {
@@ -2766,7 +2766,7 @@ obj_traverse_replace_i(VALUE obj, struct obj_traverse_replace_data *data)
if (data->move) rb_obj_transient_heap_evacuate(obj, TRUE);
#endif
- uint32_t len = ROBJECT_NUMIV(obj);
+ uint32_t len = ROBJECT_IV_COUNT(obj);
VALUE *ptr = ROBJECT_IVPTR(obj);
for (uint32_t i=0; i<len; i++) {