Adjusted spaces [ci skip]
This commit is contained in:
parent
4d3502d57f
commit
8d0ff88727
54
gc.c
54
gc.c
@ -7838,33 +7838,33 @@ gc_ref_update_method_entry(rb_objspace_t *objspace, rb_method_entry_t *me)
|
|||||||
|
|
||||||
if (def) {
|
if (def) {
|
||||||
switch (def->type) {
|
switch (def->type) {
|
||||||
case VM_METHOD_TYPE_ISEQ:
|
case VM_METHOD_TYPE_ISEQ:
|
||||||
if (def->body.iseq.iseqptr) {
|
if (def->body.iseq.iseqptr) {
|
||||||
TYPED_UPDATE_IF_MOVED(objspace, rb_iseq_t *, def->body.iseq.iseqptr);
|
TYPED_UPDATE_IF_MOVED(objspace, rb_iseq_t *, def->body.iseq.iseqptr);
|
||||||
}
|
}
|
||||||
TYPED_UPDATE_IF_MOVED(objspace, rb_cref_t *, def->body.iseq.cref);
|
TYPED_UPDATE_IF_MOVED(objspace, rb_cref_t *, def->body.iseq.cref);
|
||||||
break;
|
break;
|
||||||
case VM_METHOD_TYPE_ATTRSET:
|
case VM_METHOD_TYPE_ATTRSET:
|
||||||
case VM_METHOD_TYPE_IVAR:
|
case VM_METHOD_TYPE_IVAR:
|
||||||
UPDATE_IF_MOVED(objspace, def->body.attr.location);
|
UPDATE_IF_MOVED(objspace, def->body.attr.location);
|
||||||
break;
|
break;
|
||||||
case VM_METHOD_TYPE_BMETHOD:
|
case VM_METHOD_TYPE_BMETHOD:
|
||||||
UPDATE_IF_MOVED(objspace, def->body.bmethod.proc);
|
UPDATE_IF_MOVED(objspace, def->body.bmethod.proc);
|
||||||
break;
|
break;
|
||||||
case VM_METHOD_TYPE_ALIAS:
|
case VM_METHOD_TYPE_ALIAS:
|
||||||
TYPED_UPDATE_IF_MOVED(objspace, struct rb_method_entry_struct *, def->body.alias.original_me);
|
TYPED_UPDATE_IF_MOVED(objspace, struct rb_method_entry_struct *, def->body.alias.original_me);
|
||||||
return;
|
return;
|
||||||
case VM_METHOD_TYPE_REFINED:
|
case VM_METHOD_TYPE_REFINED:
|
||||||
TYPED_UPDATE_IF_MOVED(objspace, struct rb_method_entry_struct *, def->body.refined.orig_me);
|
TYPED_UPDATE_IF_MOVED(objspace, struct rb_method_entry_struct *, def->body.refined.orig_me);
|
||||||
UPDATE_IF_MOVED(objspace, def->body.refined.owner);
|
UPDATE_IF_MOVED(objspace, def->body.refined.owner);
|
||||||
break;
|
break;
|
||||||
case VM_METHOD_TYPE_CFUNC:
|
case VM_METHOD_TYPE_CFUNC:
|
||||||
case VM_METHOD_TYPE_ZSUPER:
|
case VM_METHOD_TYPE_ZSUPER:
|
||||||
case VM_METHOD_TYPE_MISSING:
|
case VM_METHOD_TYPE_MISSING:
|
||||||
case VM_METHOD_TYPE_OPTIMIZED:
|
case VM_METHOD_TYPE_OPTIMIZED:
|
||||||
case VM_METHOD_TYPE_UNDEF:
|
case VM_METHOD_TYPE_UNDEF:
|
||||||
case VM_METHOD_TYPE_NOTIMPLEMENTED:
|
case VM_METHOD_TYPE_NOTIMPLEMENTED:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
13
vm_args.c
13
vm_args.c
@ -233,14 +233,14 @@ keyword_hash_p(VALUE *kw_hash_ptr, VALUE *rest_hash_ptr, int check_only_symbol)
|
|||||||
|
|
||||||
if (!NIL_P(*rest_hash_ptr)) {
|
if (!NIL_P(*rest_hash_ptr)) {
|
||||||
if (check_only_symbol) {
|
if (check_only_symbol) {
|
||||||
switch(keyword_hash_symbol_other(*rest_hash_ptr)) {
|
switch (keyword_hash_symbol_other(*rest_hash_ptr)) {
|
||||||
case KW_HASH_HAS_NO_KEYS:
|
case KW_HASH_HAS_NO_KEYS:
|
||||||
case KW_HASH_HAS_SYMBOL_KEY:
|
case KW_HASH_HAS_SYMBOL_KEY:
|
||||||
break;
|
break;
|
||||||
case KW_HASH_HAS_OTHER_KEY:
|
case KW_HASH_HAS_OTHER_KEY:
|
||||||
*kw_hash_ptr = Qnil;
|
*kw_hash_ptr = Qnil;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
case KW_HASH_HAS_BOTH_KEYS:
|
case KW_HASH_HAS_BOTH_KEYS:
|
||||||
*rest_hash_ptr = rb_hash_dup(*rest_hash_ptr);
|
*rest_hash_ptr = rb_hash_dup(*rest_hash_ptr);
|
||||||
keyword_hash_split(kw_hash_ptr, rest_hash_ptr);
|
keyword_hash_split(kw_hash_ptr, rest_hash_ptr);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -738,7 +738,8 @@ setup_parameters_complex(rb_execution_context_t * const ec, const rb_iseq_t * co
|
|||||||
if (RB_TYPE_P(rest_last, T_HASH) &&
|
if (RB_TYPE_P(rest_last, T_HASH) &&
|
||||||
(((struct RHash *)rest_last)->basic.flags & RHASH_PASS_AS_KEYWORDS)) {
|
(((struct RHash *)rest_last)->basic.flags & RHASH_PASS_AS_KEYWORDS)) {
|
||||||
kw_flag |= VM_CALL_KW_SPLAT;
|
kw_flag |= VM_CALL_KW_SPLAT;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
rest_last = 0;
|
rest_last = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2945,13 +2945,13 @@ vm_yield_with_cfunc(rb_execution_context_t *ec,
|
|||||||
blockarg = rb_vm_bh_to_procval(ec, block_handler);
|
blockarg = rb_vm_bh_to_procval(ec, block_handler);
|
||||||
|
|
||||||
frame_flag = VM_FRAME_MAGIC_IFUNC | VM_FRAME_FLAG_CFRAME | (me ? VM_FRAME_FLAG_BMETHOD : 0);
|
frame_flag = VM_FRAME_MAGIC_IFUNC | VM_FRAME_FLAG_CFRAME | (me ? VM_FRAME_FLAG_BMETHOD : 0);
|
||||||
switch(kw_splat) {
|
switch (kw_splat) {
|
||||||
case 1:
|
case 1:
|
||||||
frame_flag |= VM_FRAME_FLAG_CFRAME_KW;
|
frame_flag |= VM_FRAME_FLAG_CFRAME_KW;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
frame_flag |= VM_FRAME_FLAG_CFRAME_EMPTY_KW;
|
frame_flag |= VM_FRAME_FLAG_CFRAME_EMPTY_KW;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
vm_push_frame(ec, (const rb_iseq_t *)captured->code.ifunc,
|
vm_push_frame(ec, (const rb_iseq_t *)captured->code.ifunc,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user