diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/array.c | 4 | ||||
| -rw-r--r-- | src/class.c | 7 | ||||
| -rw-r--r-- | src/codegen.c | 19 | ||||
| -rw-r--r-- | src/error.c | 25 | ||||
| -rw-r--r-- | src/error.h | 1 | ||||
| -rw-r--r-- | src/parse.y | 30 | ||||
| -rw-r--r-- | src/state.c | 2 | ||||
| -rw-r--r-- | src/string.c | 5 | ||||
| -rw-r--r-- | src/vm.c | 2 |
9 files changed, 33 insertions, 62 deletions
diff --git a/src/array.c b/src/array.c index 5f588e195..f9cc9119c 100644 --- a/src/array.c +++ b/src/array.c @@ -952,11 +952,7 @@ static mrb_value mrb_ary_inspect(mrb_state *mrb, mrb_value ary) { if (RARRAY_LEN(ary) == 0) return mrb_str_new(mrb, "[]", 2); - #if 0 /* THREAD */ - return mrb_exec_recursive(inspect_ary_r, ary, 0); - #else return inspect_ary(mrb, ary, mrb_ary_new(mrb)); - #endif } static mrb_value diff --git a/src/class.c b/src/class.c index 11f68340c..84132c38a 100644 --- a/src/class.c +++ b/src/class.c @@ -1369,9 +1369,12 @@ mrb_mod_to_s(mrb_state *mrb, mrb_value klass) mrb_str_cat(mrb, str, ">", 1); } else { + struct RClass *c; + mrb_value path; + str = mrb_str_buf_new(mrb, 32); - struct RClass *c = mrb_class_ptr(klass); - mrb_value path = mrb_class_path(mrb, c); + c = mrb_class_ptr(klass); + path = mrb_class_path(mrb, c); if (mrb_nil_p(path)) { switch (mrb_type(klass)) { diff --git a/src/codegen.c b/src/codegen.c index 5b86c90a9..e8fcce5c2 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1848,12 +1848,13 @@ codegen(codegen_scope *s, node *tree, int val) case NODE_BACK_REF: { - char buf[4]; - int len; + char buf[2] = { '$' }; + mrb_value str; int sym; - len = snprintf(buf, sizeof(buf), "$%c", (int)(intptr_t)tree); - sym = new_sym(s, mrb_intern2(s->mrb, buf, len)); + buf[1] = (char)(intptr_t)tree; + str = mrb_str_new(s->mrb, buf, 2); + sym = new_sym(s, mrb_intern_str(s->mrb, str)); genop(s, MKOP_ABx(OP_GETGLOBAL, cursp(), sym)); push(); } @@ -1861,12 +1862,14 @@ codegen(codegen_scope *s, node *tree, int val) case NODE_NTH_REF: { - char buf[4]; - int len; int sym; + mrb_state *mrb = s->mrb; + mrb_value fix = mrb_fixnum_value((intptr_t)tree); + mrb_value str = mrb_str_buf_new(mrb, 4); - len = snprintf(buf, sizeof(buf), "$%d", (int)(intptr_t)tree); - sym = new_sym(s, mrb_intern2(s->mrb, buf, len)); + mrb_str_buf_cat(mrb, str, "$", 1); + mrb_str_buf_append(mrb, str, mrb_fix2str(mrb, fix, 10)); + sym = new_sym(s, mrb_intern_str(mrb, str)); genop(s, MKOP_ABx(OP_GETGLOBAL, cursp(), sym)); push(); } diff --git a/src/error.c b/src/error.c index 6cf160801..ab5480e97 100644 --- a/src/error.c +++ b/src/error.c @@ -291,31 +291,6 @@ mrb_bug(const char *fmt, ...) exit(EXIT_FAILURE); } -static const char * -mrb_strerrno(int err) -{ -#define defined_error(name, num) if (err == num) return name; -#define undefined_error(name) -//#include "known_errors.inc" -#undef defined_error -#undef undefined_error - return NULL; -} - -void -mrb_bug_errno(const char *mesg, int errno_arg) -{ - if (errno_arg == 0) - mrb_bug("%s: errno == 0 (NOERROR)", mesg); - else { - const char *errno_str = mrb_strerrno(errno_arg); - if (errno_str) - mrb_bug("%s: %s (%s)", mesg, strerror(errno_arg), errno_str); - else - mrb_bug("%s: %s (%d)", mesg, strerror(errno_arg), errno_arg); - } -} - int sysexit_status(mrb_state *mrb, mrb_value err) { diff --git a/src/error.h b/src/error.h index 91d6595ff..53ee2b206 100644 --- a/src/error.h +++ b/src/error.h @@ -8,7 +8,6 @@ #define MRUBY_ERROR_H void mrb_sys_fail(mrb_state *mrb, const char *mesg); -void mrb_bug_errno(const char*, int); int sysexit_status(mrb_state *mrb, mrb_value err); mrb_value mrb_exc_new3(mrb_state *mrb, struct RClass* c, mrb_value str); mrb_value make_exception(mrb_state *mrb, int argc, mrb_value *argv, int isstr); diff --git a/src/parse.y b/src/parse.y index 29ea34c59..4826f4336 100644 --- a/src/parse.y +++ b/src/parse.y @@ -395,15 +395,6 @@ new_fcall(parser_state *p, mrb_sym b, node *c) return list4((node*)NODE_FCALL, new_self(p), nsym(b), c); } -#if 0 -// (:vcall self mid) -static node* -new_vcall(parser_state *p, mrb_sym b) -{ - return list3((node*)NODE_VCALL, new_self(p), (node*)b); -} -#endif - // (:super . c) static node* new_super(parser_state *p, node *c) @@ -1790,11 +1781,6 @@ arg : lhs '=' arg | arg tMATCH arg { $$ = call_bin_op(p, $1, "=~", $3); -#if 0 - if (nd_type($1) == NODE_LIT && TYPE($1->nd_lit) == T_REGEXP) { - $$ = reg_named_capture_assign($1->nd_lit, $$); - } -#endif } | arg tNMATCH arg { @@ -3241,12 +3227,15 @@ nextc(parser_state *p) cons_free(tmp); } else { +#ifdef ENABLE_STDIO if (p->f) { if (feof(p->f)) return -1; c = fgetc(p->f); if (c == EOF) return -1; } - else if (!p->s || p->s >= p->send) { + else +#endif + if (!p->s || p->s >= p->send) { return -1; } else { @@ -3304,6 +3293,7 @@ peeks(parser_state *p, const char *s) { int len = strlen(s); +#ifdef ENABLE_STDIO if (p->f) { int n = 0; while (*s) { @@ -3311,7 +3301,9 @@ peeks(parser_state *p, const char *s) } return TRUE; } - else if (p->s && p->s + len >= p->send) { + else +#endif + if (p->s && p->s + len >= p->send) { if (memcmp(p->s, s, len) == 0) return TRUE; } return FALSE; @@ -5079,7 +5071,9 @@ mrb_parser_new(mrb_state *mrb) p->in_def = p->in_single = 0; p->s = p->send = NULL; +#ifdef ENABLE_STDIO p->f = NULL; +#endif p->cmd_start = TRUE; p->in_def = p->in_single = FALSE; @@ -5132,6 +5126,7 @@ mrbc_filename(mrb_state *mrb, mrbc_context *c, const char *s) return c->filename; } +#ifdef ENABLE_STDIO parser_state* mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c) { @@ -5145,6 +5140,7 @@ mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c) mrb_parser_parse(p, c); return p; } +#endif parser_state* mrb_parse_nstring(mrb_state *mrb, const char *s, int len, mrbc_context *c) @@ -5208,6 +5204,7 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c) return v; } +#ifdef ENABLE_STDIO mrb_value mrb_load_file_cxt(mrb_state *mrb, FILE *f, mrbc_context *c) { @@ -5219,6 +5216,7 @@ mrb_load_file(mrb_state *mrb, FILE *f) { return mrb_load_file_cxt(mrb, f, NULL); } +#endif mrb_value mrb_load_nstring_cxt(mrb_state *mrb, const char *s, int len, mrbc_context *c) diff --git a/src/state.c b/src/state.c index 1278249b1..070237434 100644 --- a/src/state.c +++ b/src/state.c @@ -46,7 +46,7 @@ allocf(mrb_state *mrb, void *p, size_t size, void *ud) struct alloca_header { struct alloca_header *next; - char buf[0]; + char buf[]; }; void* diff --git a/src/string.c b/src/string.c index 79c40e9cc..65f21a091 100644 --- a/src/string.c +++ b/src/string.c @@ -2068,9 +2068,6 @@ mrb_str_sub(mrb_state *mrb, mrb_value self) mrb_value mrb_cstr_to_inum(mrb_state *mrb, const char *str, int base, int badcheck) { - #define BDIGIT unsigned int - #define BDIGIT_DBL unsigned long - char *end; char sign = 1; int c; @@ -2278,7 +2275,7 @@ mrb_cstr_to_dbl(mrb_state *mrb, const char * p, int badcheck) char *end; double d; #if !defined(DBL_DIG) - #define DBL_DIG 16 +# define DBL_DIG 16 #endif enum {max_width = 20}; @@ -175,7 +175,7 @@ is_strict(mrb_state *mrb, struct REnv *e) return 0; } -inline struct REnv* +static inline struct REnv* top_env(mrb_state *mrb, struct RProc *proc) { struct REnv *e = proc->env; |
