Fix error handlings for fputs().

This commit is contained in:
Tatsuhiko Kubo
2014-08-28 05:29:25 +09:00
parent 921798be01
commit 7d9b5132a5
+10 -2
View File
@@ -996,13 +996,21 @@ mrb_dump_irep_cfunc(mrb_state *mrb, mrb_irep *irep, int debug_info, FILE *fp, co
return MRB_DUMP_WRITE_FAULT;
}
while (bin_idx < bin_size) {
if (bin_idx % 16 == 0) fputs("\n", fp);
if (bin_idx % 16 == 0) {
if (fputs("\n", fp) == EOF) {
mrb_free(mrb, bin);
return MRB_DUMP_WRITE_FAULT;
}
}
if (fprintf(fp, "0x%02x,", bin[bin_idx++]) < 0) {
mrb_free(mrb, bin);
return MRB_DUMP_WRITE_FAULT;
}
}
fputs("\n};\n", fp);
if (fputs("\n};\n", fp) == EOF) {
mrb_free(mrb, bin);
return MRB_DUMP_WRITE_FAULT;
}
}
mrb_free(mrb, bin);