summaryrefslogtreecommitdiff
path: root/compile.c
diff options
context:
space:
mode:
authorGabriel Lacroix <[email protected]>2024-06-28 10:11:35 -0400
committerGitHub <[email protected]>2024-06-28 10:11:35 -0400
commit1652c194c849468659baa566a2422a308d6eac0c (patch)
treee0c214b87ced76e9dfc289f4ca64c830d671b9e6 /compile.c
parent5c826ebea585dad8aa351632a9de3162d59fb898 (diff)
Fix comment for VM_CALL_ARGS_SIMPLE (#11067)
* Set VM_CALL_KWARG flag first and reuse it to avoid checking kw_arg twice * Fix comment for VM_CALL_ARGS_SIMPLE * Make VM_CALL_ARGS_SIMPLE set-site match its comment
Diffstat (limited to 'compile.c')
-rw-r--r--compile.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/compile.c b/compile.c
index 62b5bbc490..a9fe5ce114 100644
--- a/compile.c
+++ b/compile.c
@@ -1439,16 +1439,16 @@ new_callinfo(rb_iseq_t *iseq, ID mid, int argc, unsigned int flag, struct rb_cal
{
VM_ASSERT(argc >= 0);
- if (!(flag & (VM_CALL_ARGS_SPLAT | VM_CALL_ARGS_BLOCKARG | VM_CALL_KW_SPLAT | VM_CALL_FORWARDING)) &&
- kw_arg == NULL && !has_blockiseq) {
- flag |= VM_CALL_ARGS_SIMPLE;
- }
-
if (kw_arg) {
flag |= VM_CALL_KWARG;
argc += kw_arg->keyword_len;
}
+ if (!(flag & (VM_CALL_ARGS_SPLAT | VM_CALL_ARGS_BLOCKARG | VM_CALL_KWARG | VM_CALL_KW_SPLAT | VM_CALL_FORWARDING))
+ && !has_blockiseq) {
+ flag |= VM_CALL_ARGS_SIMPLE;
+ }
+
ISEQ_BODY(iseq)->ci_size++;
const struct rb_callinfo *ci = vm_ci_new(mid, flag, argc, kw_arg);
RB_OBJ_WRITTEN(iseq, Qundef, ci);