GitHub

File tree

  • mrbgems

    • mruby-bin-debugger/tools/mrdb

    • mruby-bin-mirb/tools/mirb

    • mruby-bin-mruby/tools/mruby

    • mruby-test

  • src

Original file line numberDiff line numberDiff line change

@@ -674,15 +674,8 @@ main(int argc, char **argv)

674674

l_restart:

675675
676676

if (!MRB_OPEN_SUCCESS(mrb)) {

677-

if (mrb) {

678-

/* Initialization failed - print exception details */

679-

mrb_print_error(mrb);

680-

mrb_close(mrb);

681-

}

682-

else {

683-

/* Allocation failed */

684-

fputs("Failed to allocate mrb_state, exiting mrdb\n", stderr);

685-

}

677+

mrb_print_error(mrb); /* handles NULL */

678+

mrb_close(mrb); /* handles NULL */

686679

return EXIT_FAILURE;

687680

}

688681
Original file line numberDiff line numberDiff line change

@@ -476,15 +476,8 @@ main(int argc, char **argv)

476476

/* new interpreter instance */

477477

mrb = mrb_open();

478478

if (!MRB_OPEN_SUCCESS(mrb)) {

479-

if (mrb) {

480-

/* Initialization failed - print exception details */

481-

mrb_print_error(mrb);

482-

mrb_close(mrb);

483-

}

484-

else {

485-

/* Allocation failed */

486-

fputs("Failed to allocate mrb_state, exiting mirb\n", stderr);

487-

}

479+

mrb_print_error(mrb); /* handles NULL */

480+

mrb_close(mrb); /* handles NULL */

488481

return EXIT_FAILURE;

489482

}

490483
Original file line numberDiff line numberDiff line change

@@ -283,15 +283,8 @@ main(int argc, char **argv)

283283

mrb_value v;

284284
285285

if (!MRB_OPEN_SUCCESS(mrb)) {

286-

if (mrb) {

287-

/* Initialization failed - print exception details */

288-

mrb_print_error(mrb);

289-

mrb_close(mrb);

290-

}

291-

else {

292-

/* Allocation failed */

293-

fprintf(stderr, "%s: Failed to allocate mrb_state, exiting mruby\n", *argv);

294-

}

286+

mrb_print_error(mrb); /* handles NULL */

287+

mrb_close(mrb); /* handles NULL */

295288

return EXIT_FAILURE;

296289

}

297290
Original file line numberDiff line numberDiff line change

@@ -291,15 +291,8 @@ main(int argc, char **argv)

291291

/* new interpreter instance */

292292

mrb = mrb_open();

293293

if (!MRB_OPEN_SUCCESS(mrb)) {

294-

if (mrb) {

295-

/* Initialization failed - print exception details */

296-

mrb_print_error(mrb);

297-

mrb_close(mrb);

298-

}

299-

else {

300-

/* Allocation failed */

301-

fputs("Failed to allocate mrb_state, exiting test driver", stderr);

302-

}

294+

mrb_print_error(mrb); /* handles NULL */

295+

mrb_close(mrb); /* handles NULL */

303296

return EXIT_FAILURE;

304297

}

305298
Original file line numberDiff line numberDiff line change

@@ -845,6 +845,11 @@ MRB_API void

845845

mrb_print_error(mrb_state *mrb)

846846

{

847847

#ifndef MRB_NO_STDIO

848+

if (!mrb) {

849+

/* mrb_open() returned NULL - allocation failed */

850+

fputs("Failed to allocate mrb_state\n", stderr);

851+

return;

852+

}

848853

if (mrb->jmp == NULL) {

849854

struct mrb_jmpbuf c_jmp;

850855

MRB_TRY(&c_jmp) {

Read the original on github.com ↗