diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dump.c | 7 | ||||
| -rw-r--r-- | src/etc.c | 3 | ||||
| -rw-r--r-- | src/hash.c | 8 | ||||
| -rw-r--r-- | src/load.c | 24 | ||||
| -rw-r--r-- | src/mruby_core.rake | 19 | ||||
| -rw-r--r-- | src/string.c | 12 | ||||
| -rw-r--r-- | src/struct.c | 10 |
7 files changed, 39 insertions, 44 deletions
diff --git a/src/dump.c b/src/dump.c index b97b38dc2..ba5a69a56 100644 --- a/src/dump.c +++ b/src/dump.c @@ -51,6 +51,8 @@ enum { DUMP_SECTION_NUM, }; +#ifdef ENABLE_STDIO + uint16_t calc_crc_16_ccitt(unsigned char*,int); static inline int uint8_dump(uint8_t,char*,int); static inline int uint16_dump(uint16_t,char*,int); @@ -188,8 +190,7 @@ str_dump_len(char *str, uint16_t len, int type) if (*src >= ' ' && *src <= '~') { dump_len++; } else { - // dump_len += sprintf(buf, "\\%03o", *src & 0377); - dump_len += 4; + dump_len += 4; /* octet "\\nnn" */ } break; } @@ -745,3 +746,5 @@ mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname) return rc; } + +#endif /* ENABLE_STDIO */ @@ -74,7 +74,6 @@ mrb_lastline_get(mrb_state *mrb) mrb_value mrb_exec_recursive(mrb_state *mrb, mrb_value (*func) (mrb_state *, mrb_value, mrb_value, int), mrb_value obj, void *arg) { - // return mrb_exec_recursive(mrb, io_puts_ary, line, &out); return func(mrb, obj, *(mrb_value*)arg, 0); } @@ -118,7 +117,7 @@ mrb_to_id(mrb_state *mrb, mrb_value name) mrb_value mrb_block_proc(void) { - return mrb_nil_value();//proc_new(mrb_cProc, FALSE); + return mrb_nil_value(); } static mrb_int diff --git a/src/hash.c b/src/hash.c index b7ac59ada..5fa3c1ef8 100644 --- a/src/hash.c +++ b/src/hash.c @@ -181,12 +181,6 @@ mrb_hash_dup(mrb_state *mrb, mrb_value hash) return mrb_obj_value(ret); } -static void -mrb_hash_modify_check(mrb_state *mrb, mrb_value hash) -{ - //if (OBJ_FROZEN(hash)) mrb_error_frozen("hash"); -} - mrb_value mrb_check_hash_type(mrb_state *mrb, mrb_value hash) { @@ -207,7 +201,6 @@ mrb_hash_tbl(mrb_state *mrb, mrb_value hash) static void mrb_hash_modify(mrb_state *mrb, mrb_value hash) { - //mrb_hash_modify_check(mrb, hash); mrb_hash_tbl(mrb, hash); } @@ -755,7 +748,6 @@ mrb_hash_replace(mrb_state *mrb, mrb_value hash) khiter_t k; mrb_get_args(mrb, "o", &hash2); - mrb_hash_modify_check(mrb, hash); hash2 = to_hash(mrb, hash2); if (mrb_obj_equal(mrb, hash, hash2)) return hash; mrb_hash_clear(mrb, hash); diff --git a/src/load.c b/src/load.c index a61af509c..850fa6e8d 100644 --- a/src/load.c +++ b/src/load.c @@ -11,6 +11,7 @@ #include "mruby/proc.h" #include "mruby/irep.h" +#ifdef ENABLE_STDIO typedef struct _RiteFILE { FILE* fp; @@ -18,6 +19,7 @@ typedef struct _RiteFILE int cnt; int readlen; } RiteFILE; +#endif const char hex2bin[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //00-0f @@ -38,15 +40,18 @@ static uint16_t hex_to_uint16(unsigned char*); static uint32_t hex_to_uint32(unsigned char*); static char* hex_to_str(char*,char*,uint16_t*); uint16_t calc_crc_16_ccitt(unsigned char*,int); +#ifdef ENABLE_STDIO static unsigned char rite_fgetcSub(RiteFILE*); static unsigned char rite_fgetc(RiteFILE*,int); static unsigned char* rite_fgets(RiteFILE*,unsigned char*,int,int); static int load_rite_header(FILE*,rite_binary_header*,unsigned char*); static int load_rite_irep_record(mrb_state*, RiteFILE*,unsigned char*,uint32_t*); +#endif static int read_rite_header(mrb_state*,unsigned char*,rite_binary_header*); static int read_rite_irep_record(mrb_state*,unsigned char*,uint32_t*); +#ifdef ENABLE_STDIO static unsigned char rite_fgetcSub(RiteFILE* rfp) { @@ -65,7 +70,9 @@ rite_fgetcSub(RiteFILE* rfp) } return rfp->buf[(rfp->cnt)++]; } +#endif /* ENABLE_STDIO */ +#ifdef ENABLE_STDIO static unsigned char rite_fgetc(RiteFILE* rfp, int ignorecomment) { @@ -87,7 +94,9 @@ rite_fgetc(RiteFILE* rfp, int ignorecomment) } } } +#endif /* ENABLE_STDIO */ +#ifdef ENABLE_STDIO static unsigned char* rite_fgets(RiteFILE* rfp, unsigned char* dst, int len, int ignorecomment) { @@ -100,7 +109,9 @@ rite_fgets(RiteFILE* rfp, unsigned char* dst, int len, int ignorecomment) } return dst; } +#endif /* ENABLE_STDIO */ +#ifdef ENABLE_STDIO static int load_rite_header(FILE* fp, rite_binary_header* bin_header, unsigned char* hcrc) { @@ -128,7 +139,9 @@ load_rite_header(FILE* fp, rite_binary_header* bin_header, unsigned char* hcrc) return MRB_DUMP_OK; } +#endif /* ENABLE_STDIO */ +#ifdef ENABLE_STDIO static int load_rite_irep_record(mrb_state *mrb, RiteFILE* rfp, unsigned char* dst, uint32_t* len) { @@ -152,8 +165,10 @@ load_rite_irep_record(mrb_state *mrb, RiteFILE* rfp, unsigned char* dst, uint32_ //IREP HEADER BLOCK *dst = rite_fgetc(rfp, TRUE); //record identifier - if (*dst != RITE_IREP_IDENFIFIER) - return MRB_DUMP_INVALID_IREP; + if (*dst != RITE_IREP_IDENFIFIER) { + result = MRB_DUMP_INVALID_IREP; + goto error_exit; + } dst += sizeof(unsigned char); *dst = rite_fgetc(rfp, TRUE); //class or module dst += sizeof(unsigned char); @@ -247,7 +262,9 @@ error_exit: return result; } +#endif /* ENABLE_STDIO */ +#ifdef ENABLE_STDIO int mrb_read_irep_file(mrb_state *mrb, FILE* fp) { @@ -306,6 +323,7 @@ error_exit: return ret; } +#endif /* ENABLE_STDIO */ static int read_rite_header(mrb_state *mrb, unsigned char *bin, rite_binary_header* bin_header) @@ -668,6 +686,7 @@ irep_error(mrb_state *mrb, int n) mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SCRIPT_ERROR, msg, sizeof(msg) - 1)); } +#ifdef ENABLE_STDIO mrb_value mrb_load_irep_file(mrb_state *mrb, FILE* fp) { @@ -679,6 +698,7 @@ mrb_load_irep_file(mrb_state *mrb, FILE* fp) } return mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb)); } +#endif mrb_value mrb_load_irep(mrb_state *mrb, const char *bin) diff --git a/src/mruby_core.rake b/src/mruby_core.rake index 44d62c1e9..db335223d 100644 --- a/src/mruby_core.rake +++ b/src/mruby_core.rake @@ -1,8 +1,11 @@ MRuby.each_target do - dir = File.dirname(__FILE__).relative_path_from(root) - - lex_def = "#{dir}/lex.def" - objs = Dir.glob("src/*.{c}").map { |f| objfile(f.pathmap("#{build_dir}/%X")) } + [objfile("#{build_dir}/#{dir}/y.tab")] + current_dir = File.dirname(__FILE__).relative_path_from(Dir.pwd) + relative_from_root = File.dirname(__FILE__).relative_path_from(MRUBY_ROOT) + current_build_dir = "#{build_dir}/#{relative_from_root}" + + lex_def = "#{current_dir}/lex.def" + objs = Dir.glob("#{current_dir}/*.c").map { |f| objfile(f.pathmap("#{current_build_dir}/%n")) } + objs += [objfile("#{current_build_dir}/y.tab")] self.libmruby << objs file libfile("#{build_dir}/lib/libmruby_core") => objs do |t| @@ -10,16 +13,16 @@ MRuby.each_target do end # Parser - file "#{build_dir}/#{dir}/y.tab.c" => ["#{dir}/parse.y"] do |t| + file "#{current_build_dir}/y.tab.c" => ["#{current_dir}/parse.y"] do |t| yacc.run t.name, t.prerequisites.first end - file objfile("#{build_dir}/#{dir}/y.tab") => ["#{build_dir}/#{dir}/y.tab.c", lex_def] do |t| - cc.run t.name, t.prerequisites.first, [], [dir] + file objfile("#{current_build_dir}/y.tab") => ["#{current_build_dir}/y.tab.c", lex_def] do |t| + cc.run t.name, t.prerequisites.first, [], [current_dir] end # Lexical analyzer - file lex_def => "#{dir}/keywords" do |t| + file lex_def => "#{current_dir}/keywords" do |t| gperf.run t.name, t.prerequisites.first end end diff --git a/src/string.c b/src/string.c index 6e0c8d1a2..205c39876 100644 --- a/src/string.c +++ b/src/string.c @@ -1320,7 +1320,6 @@ mrb_str_include(mrb_state *mrb, mrb_value self) return mrb_true_value(); return mrb_false_value(); } - //StringValue(arg); mrb_string_value(mrb, &str2); i = mrb_str_index(mrb, self, str2, 0); @@ -1986,14 +1985,6 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str) } -int -mrb_block_given_p() -{ - /*if (ruby_frame->iter == ITER_CUR && ruby_block) - return 1;*//*Qtrue*/ - return FALSE; -} - /* 15.2.10.5.37 */ /* * call-seq: @@ -2282,8 +2273,6 @@ mrb_cstr_to_dbl(mrb_state *mrb, const char * p, int badcheck) { char *end; double d; -// const char *ellipsis = ""; -// int w; #if !defined(DBL_DIG) #define DBL_DIG 16 #endif @@ -2354,7 +2343,6 @@ mrb_str_to_dbl(mrb_state *mrb, mrb_value str, int badcheck) char *s; int len; - //StringValue(str); mrb_string_value(mrb, &str); s = RSTRING_PTR(str); len = RSTRING_LEN(str); diff --git a/src/struct.c b/src/struct.c index 1efdca66f..5026a6ab4 100644 --- a/src/struct.c +++ b/src/struct.c @@ -172,12 +172,6 @@ static mrb_value (*const ref_func[])(mrb_state*, mrb_value) = { mrb_struct_ref9, }; -static void -mrb_struct_modify(mrb_value s) -{ - //if (OBJ_FROZEN(s)) mrb_error_frozen("Struct"); -} - mrb_sym mrb_id_attrset(mrb_state *mrb, mrb_sym id) { @@ -212,7 +206,6 @@ mrb_struct_set(mrb_state *mrb, mrb_value obj, mrb_value val) members = mrb_struct_members(mrb, obj); ptr_members = RARRAY_PTR(members); len = RARRAY_LEN(members); - mrb_struct_modify(obj); ptr = RSTRUCT_PTR(obj); for (i=0; i<len; i++) { slot = ptr_members[i]; @@ -429,7 +422,6 @@ mrb_struct_initialize_withArg(mrb_state *mrb, int argc, mrb_value *argv, mrb_val int n; struct RStruct *st; - mrb_struct_modify(self); n = num_members(mrb, klass); if (n < argc) { mrb_raise(mrb, E_ARGUMENT_ERROR, "struct size differs"); @@ -616,7 +608,6 @@ mrb_struct_aset_id(mrb_state *mrb, mrb_value s, mrb_sym id, mrb_value val) members = mrb_struct_members(mrb, s); len = RARRAY_LEN(members); - mrb_struct_modify(s); if (RSTRUCT_LEN(s) != len) { mrb_raisef(mrb, E_TYPE_ERROR, "struct size differs (%ld required %ld given)", len, RSTRUCT_LEN(s)); @@ -678,7 +669,6 @@ mrb_struct_aset(mrb_state *mrb, mrb_value s) mrb_raisef(mrb, E_INDEX_ERROR, "offset %ld too large for struct(size:%ld)", i, RSTRUCT_LEN(s)); } - mrb_struct_modify(s); return RSTRUCT_PTR(s)[i] = val; } |
