Beispiel #1
0
VALUE
rb_yield(VALUE val)
{
    if (val == Qundef) {
        return rb_vm_yield(0, NULL);
    }
    return rb_vm_yield(1, &val);
}
Beispiel #2
0
VALUE
rb_yield_splat(VALUE values)
{
    VALUE tmp = rb_check_array_type(values);
    if (NIL_P(tmp)) {
        rb_raise(rb_eArgError, "not an array");
    }
    return rb_vm_yield(RARRAY_LENINT(tmp), RARRAY_PTR(tmp));
}
Beispiel #3
0
VALUE
rb_yield_values(int n, ...)
{
    if (n == 0) {
	return rb_vm_yield(0, 0);
    }
    else {
	int i;
	VALUE *argv;
	va_list args;
	argv = ALLOCA_N(VALUE, n);

	va_start(args, n);
	for (i=0; i<n; i++) {
	    argv[i] = va_arg(args, VALUE);
	}
	va_end(args);

	return rb_vm_yield(n, argv);
    }
}
Beispiel #4
0
VALUE
rb_yield_values2(int argc, const VALUE *argv)
{
    return rb_vm_yield(argc, argv);
}
Beispiel #5
0
static inline VALUE
rb_yield_0(int argc, const VALUE * argv)
{
    return rb_vm_yield(argc, argv);
}