Remove no longer used union
IMEMO_NEW takes just one memo value, min/max argc are assigned directly and packed argc is not used.
This commit is contained in:
parent
29dafa5fc2
commit
1dddc6c78b
10
proc.c
10
proc.c
@ -735,11 +735,6 @@ sym_proc_new(VALUE klass, VALUE sym)
|
|||||||
struct vm_ifunc *
|
struct vm_ifunc *
|
||||||
rb_vm_ifunc_new(rb_block_call_func_t func, const void *data, int min_argc, int max_argc)
|
rb_vm_ifunc_new(rb_block_call_func_t func, const void *data, int min_argc, int max_argc)
|
||||||
{
|
{
|
||||||
union {
|
|
||||||
struct vm_ifunc_argc argc;
|
|
||||||
VALUE packed;
|
|
||||||
} arity;
|
|
||||||
|
|
||||||
if (min_argc < UNLIMITED_ARGUMENTS ||
|
if (min_argc < UNLIMITED_ARGUMENTS ||
|
||||||
#if SIZEOF_INT * 2 > SIZEOF_VALUE
|
#if SIZEOF_INT * 2 > SIZEOF_VALUE
|
||||||
min_argc >= (int)(1U << (SIZEOF_VALUE * CHAR_BIT) / 2) ||
|
min_argc >= (int)(1U << (SIZEOF_VALUE * CHAR_BIT) / 2) ||
|
||||||
@ -756,14 +751,13 @@ rb_vm_ifunc_new(rb_block_call_func_t func, const void *data, int min_argc, int m
|
|||||||
rb_raise(rb_eRangeError, "maximum argument number out of range: %d",
|
rb_raise(rb_eRangeError, "maximum argument number out of range: %d",
|
||||||
max_argc);
|
max_argc);
|
||||||
}
|
}
|
||||||
arity.argc.min = min_argc;
|
|
||||||
arity.argc.max = max_argc;
|
|
||||||
rb_execution_context_t *ec = GET_EC();
|
rb_execution_context_t *ec = GET_EC();
|
||||||
|
|
||||||
struct vm_ifunc *ifunc = IMEMO_NEW(struct vm_ifunc, imemo_ifunc, (VALUE)rb_vm_svar_lep(ec, ec->cfp));
|
struct vm_ifunc *ifunc = IMEMO_NEW(struct vm_ifunc, imemo_ifunc, (VALUE)rb_vm_svar_lep(ec, ec->cfp));
|
||||||
ifunc->func = func;
|
ifunc->func = func;
|
||||||
ifunc->data = data;
|
ifunc->data = data;
|
||||||
ifunc->argc = arity.argc;
|
ifunc->argc.min = min_argc;
|
||||||
|
ifunc->argc.max = max_argc;
|
||||||
|
|
||||||
return ifunc;
|
return ifunc;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user