aboutsummaryrefslogtreecommitdiffstats
path: root/vm_args.c
diff options
context:
space:
mode:
authorJean Boussier <byroot@ruby-lang.org>2024-04-16 15:30:00 +0200
committerJean Boussier <jean.boussier@gmail.com>2024-04-16 17:20:35 +0200
commitf06670c5a2a1daa6595018858d5cfa429a8aeae6 (patch)
treef41c57d0089600f9faf5379d61d0aad6fbbaadee /vm_args.c
parent7380e3d30ff3d33fa7dd3756929e5718be665bba (diff)
downloadruby-f06670c5a2a1daa6595018858d5cfa429a8aeae6.tar.gz
Eliminate usage of OBJ_FREEZE_RAW
Previously it would bypass the `FL_ABLE` check, but since shapes introduction, it started having a different behavior than `OBJ_FREEZE`, as it would onyl set the `FL_FREEZE` flag, but not update the shape. I have no indication of this causing a bug yet, but it seems like a trap waiting to happen.
Diffstat (limited to 'vm_args.c')
-rw-r--r--vm_args.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/vm_args.c b/vm_args.c
index 9df175eaa9..1a78e96776 100644
--- a/vm_args.c
+++ b/vm_args.c
@@ -1021,7 +1021,7 @@ vm_caller_setup_arg_block(const rb_execution_context_t *ec, rb_control_frame_t *
VALUE callback_arg = rb_ary_hidden_new(2);
rb_ary_push(callback_arg, block_code);
rb_ary_push(callback_arg, ref);
- OBJ_FREEZE_RAW(callback_arg);
+ OBJ_FREEZE(callback_arg);
func = rb_func_lambda_new(refine_sym_proc_call, callback_arg, 1, UNLIMITED_ARGUMENTS);
rb_hash_aset(ref, block_code, func);
}