2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
|
# File 'ext/mini_racer_extension/mini_racer_extension.c', line 2186
static VALUE platform_set_flags(int argc, VALUE *argv, VALUE klass)
{
VALUE args, kwargs, k, v;
int i, n;
(void)&klass;
rb_scan_args(argc, argv, "*:", &args, &kwargs);
Check_Type(args, T_ARRAY);
for (i = 0, n = RARRAY_LENINT(args); i < n; i++) {
k = rb_ary_entry(args, i);
v = Qnil;
if (!platform_set_flag1(k, v))
goto fail;
}
if (NIL_P(kwargs))
return Qnil;
Check_Type(kwargs, T_HASH);
args = rb_ary_new();
rb_hash_foreach(kwargs, collect, args);
for (i = 0, n = RARRAY_LENINT(args); i < n; i += 2) {
k = rb_ary_entry(args, i+0);
v = rb_ary_entry(args, i+1);
if (!platform_set_flag1(k, v))
goto fail;
}
return Qnil;
fail:
rb_raise(platform_init_error, "platform already initialized");
}
|