mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge branch 'master' of github.com:mruby/mruby
This commit is contained in:
@@ -23,6 +23,9 @@ int mrb_cdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname);
|
||||
/* error code */
|
||||
#define MRB_CDUMP_OK 0
|
||||
#define MRB_CDUMP_GENERAL_FAILURE -1
|
||||
#define MRB_CDUMP_WRITE_FAULT -2
|
||||
#define MRB_CDUMP_INVALID_IREP -6
|
||||
#define MRB_CDUMP_INVALID_ARGUMENT -7
|
||||
|
||||
#if defined(__cplusplus)
|
||||
} /* extern "C" { */
|
||||
|
||||
+12
-9
@@ -23,7 +23,7 @@ make_cdump_isec(mrb_state *mrb, int irep_no, FILE *f)
|
||||
mrb_irep *irep = mrb->irep[irep_no];
|
||||
|
||||
if (irep == NULL)
|
||||
return -1;
|
||||
return MRB_CDUMP_INVALID_IREP;
|
||||
|
||||
/* dump isec struct*/
|
||||
if (irep->ilen > 0) {
|
||||
@@ -34,7 +34,7 @@ make_cdump_isec(mrb_state *mrb, int irep_no, FILE *f)
|
||||
SOURCE_CODE0 ("");
|
||||
}
|
||||
|
||||
return 0;
|
||||
return MRB_CDUMP_OK;
|
||||
}
|
||||
|
||||
static size_t
|
||||
@@ -104,7 +104,7 @@ make_cdump_irep(mrb_state *mrb, int irep_no, FILE *f)
|
||||
size_t buf_len, str_len;
|
||||
|
||||
if (irep == NULL)
|
||||
return -1;
|
||||
return MRB_CDUMP_INVALID_IREP;
|
||||
|
||||
buf_len = MRB_CDUMP_LINE_LEN;
|
||||
if ((buf = (char *)mrb_malloc(mrb, buf_len)) == NULL) {
|
||||
@@ -176,9 +176,10 @@ int
|
||||
mrb_cdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname)
|
||||
{
|
||||
int irep_no;
|
||||
int error;
|
||||
|
||||
if (mrb == NULL || n < 0 || n >= mrb->irep_len || f == NULL || initname == NULL)
|
||||
return -1;
|
||||
return MRB_CDUMP_INVALID_ARGUMENT;
|
||||
|
||||
SOURCE_CODE0("#include \"mruby.h\"");
|
||||
SOURCE_CODE0("#include \"mruby/irep.h\"");
|
||||
@@ -187,8 +188,9 @@ mrb_cdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname)
|
||||
SOURCE_CODE0("");
|
||||
|
||||
for (irep_no=n; irep_no<mrb->irep_len; irep_no++) {
|
||||
if (make_cdump_isec(mrb, irep_no, f) != 0)
|
||||
return -1;
|
||||
error = make_cdump_isec(mrb, irep_no, f);
|
||||
if (error != MRB_CDUMP_OK)
|
||||
return error;
|
||||
}
|
||||
|
||||
SOURCE_CODE0("void");
|
||||
@@ -200,12 +202,13 @@ mrb_cdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname)
|
||||
SOURCE_CODE0(" mrb_irep *irep;");
|
||||
SOURCE_CODE0("");
|
||||
for (irep_no=n; irep_no<mrb->irep_len; irep_no++) {
|
||||
if (make_cdump_irep(mrb, irep_no, f) != 0)
|
||||
return -1;
|
||||
error = make_cdump_irep(mrb, irep_no, f);
|
||||
if (error != MRB_CDUMP_OK)
|
||||
return error;
|
||||
}
|
||||
|
||||
SOURCE_CODE0(" mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb));");
|
||||
SOURCE_CODE0("}");
|
||||
|
||||
return 0;
|
||||
return MRB_CDUMP_OK;
|
||||
}
|
||||
|
||||
+3
-2
@@ -507,6 +507,7 @@ calc_crc_section(mrb_state *mrb, mrb_irep *irep, uint16_t *crc, int section)
|
||||
result = write_syms_block(mrb, irep, buf, type);
|
||||
break;
|
||||
default:
|
||||
result = MRB_DUMP_GENERAL_FAILURE;
|
||||
break; /* Already checked above. */
|
||||
}
|
||||
if (result < 0) {
|
||||
@@ -689,7 +690,7 @@ mrb_write_irep(mrb_state *mrb, int top, char *bin)
|
||||
|
||||
for (irep_no=top; irep_no<mrb->irep_len; irep_no++) {
|
||||
rc = write_irep_record(mrb, irep_no, bin, &rlen, DUMP_TYPE_BIN);
|
||||
if (rc != 0)
|
||||
if (rc != MRB_DUMP_OK)
|
||||
return rc;
|
||||
|
||||
bin += (rlen + DUMP_SIZE(MRB_DUMP_SIZE_OF_LONG, DUMP_TYPE_BIN));
|
||||
@@ -718,7 +719,7 @@ mrb_dump_irep(mrb_state *mrb, int top, FILE* fp)
|
||||
|
||||
for (irep_no=top; irep_no<mrb->irep_len; irep_no++) {
|
||||
rc = dump_irep_record(mrb, irep_no, fp, &rlen);
|
||||
if (rc != 0)
|
||||
if (rc != MRB_DUMP_OK)
|
||||
return rc;
|
||||
|
||||
rbds += rlen;
|
||||
|
||||
@@ -418,8 +418,6 @@ mrb_init_exception(mrb_state *mrb)
|
||||
mrb_define_method(mrb, e, "inspect", exc_inspect, ARGS_NONE());
|
||||
|
||||
mrb->eStandardError_class = mrb_define_class(mrb, "StandardError", mrb->eException_class); /* 15.2.23 */
|
||||
mrb_define_class(mrb, "RuntimeError", mrb->eStandardError_class); /* 15.2.28 */
|
||||
|
||||
mrb_define_class(mrb, "RuntimeError", mrb->eStandardError_class); /* 15.2.28 */
|
||||
e = mrb_define_class(mrb, "ScriptError", mrb->eException_class); /* 15.2.37 */
|
||||
mrb_define_class(mrb, "SyntaxError", e); /* 15.2.38 */
|
||||
|
||||
Reference in New Issue
Block a user