GitHub

@@ -264,22 +264,17 @@ mrb_struct_s_def(mrb_state *mrb, mrb_value klass)

264264265265

name = mrb_nil_value();

266266

mrb_get_args(mrb, "*&", &argv, &argc, &b);

267-

if (argc == 0) { /* special case to avoid crash */

268-

mrb_argnum_error(mrb, argc, 1, -1);

269-

}

270-

else {

267+

if (argc > 0) {

271268

pargv = argv;

272269

argcnt = argc;

273-

if (argc > 0) {

274-

name = argv[0];

275-

if (mrb_symbol_p(name)) {

276-

/* 1stArgument:symbol -> name=nil rest=argv[0..n] */

277-

name = mrb_nil_value();

278-

}

279-

else {

280-

pargv++;

281-

argcnt--;

282-

}

270+

name = argv[0];

271+

if (mrb_symbol_p(name)) {

272+

/* 1stArgument:symbol -> name=nil rest=argv[0..n] */

273+

name = mrb_nil_value();

274+

}

275+

else {

276+

pargv++;

277+

argcnt--;

283278

}

284279

rest = mrb_ary_new_from_values(mrb, argcnt, pargv);

285280

for (i=0; i<argcnt; i++) {

@@ -290,11 +285,8 @@ mrb_struct_s_def(mrb_state *mrb, mrb_value klass)

290285

if (!mrb_nil_p(b)) {

291286

mrb_yield_with_class(mrb, b, 1, &st, st, mrb_class_ptr(st));

292287

}

293-294-

return st;

295288

}

296-

/* not reached */

297-

return mrb_nil_value();

289+

return st;

298290

}

299291300292

static mrb_int

Read the original on github.com ↗