From db20b5142b598185b57ade7c2bd60334b21afd08 Mon Sep 17 00:00:00 2001 From: Patrick Hogan Date: Wed, 25 Apr 2012 11:09:28 -0500 Subject: mrb_ary_dup is only used by mrb_ary_sort which is removed by #if 0 Signed-off-by: Patrick Hogan --- src/array.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/array.c b/src/array.c index 66d80cbf3..5ffa03821 100644 --- a/src/array.c +++ b/src/array.c @@ -906,6 +906,7 @@ mrb_ary_sort_bang(mrb_value ary) } #endif +#if 0 mrb_value mrb_ary_dup(mrb_state *mrb, mrb_value self) { @@ -928,7 +929,6 @@ mrb_ary_dup(mrb_state *mrb, mrb_value self) return ary; } -#if 0 /* * call-seq: * ary.sort -> new_ary -- cgit v1.2.3 From 4b99def2ae1b718e8875ee8442ece3ac05a4595c Mon Sep 17 00:00:00 2001 From: Patrick Hogan Date: Wed, 25 Apr 2012 11:15:38 -0500 Subject: Clean up switch statements. Some formatting and add default label to silence warning about unhanded cases. Signed-off-by: Patrick Hogan --- src/gc.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/gc.c b/src/gc.c index 995678b0c..92378ee0a 100644 --- a/src/gc.c +++ b/src/gc.c @@ -323,12 +323,12 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj) struct REnv *e = (struct REnv *)obj; if (e->cioff < 0) { - int i, len; + int i, len; - len = (int)e->flags; - for (i=0; istack[i]); - } + len = (int)e->flags; + for (i=0; istack[i]); + } } } break; @@ -339,7 +339,7 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj) size_t i, e; for (i=0,e=a->len; ibuf[i]); + mrb_gc_mark_value(mrb, a->buf[i]); } } break; @@ -347,6 +347,7 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj) case MRB_TT_HASH: mrb_gc_mark_ht(mrb, (struct RClass*)obj); break; + case MRB_TT_STRING: { struct RString *s = (struct RString*)obj; @@ -356,6 +357,7 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj) } } break; + case MRB_TT_RANGE: { struct RRange *r = (struct RRange*)obj; @@ -364,9 +366,8 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj) mrb_gc_mark_value(mrb, r->edges->end); } break; - case MRB_TT_REGEX: - case MRB_TT_STRUCT: - case MRB_TT_EXCEPTION: + + default: break; } } @@ -396,12 +397,14 @@ obj_free(mrb_state *mrb, struct RBasic *obj) case MRB_TT_OBJECT: mrb_gc_free_iv(mrb, (struct RObject*)obj); break; + case MRB_TT_CLASS: case MRB_TT_MODULE: case MRB_TT_SCLASS: mrb_gc_free_mt(mrb, (struct RClass*)obj); mrb_gc_free_iv(mrb, (struct RObject*)obj); break; + case MRB_TT_ENV: { struct REnv *e = (struct REnv *)obj; @@ -412,26 +415,24 @@ obj_free(mrb_state *mrb, struct RBasic *obj) } } break; - case MRB_TT_PROC: - case MRB_TT_ICLASS: - break; + case MRB_TT_ARRAY: mrb_free(mrb, ((struct RArray*)obj)->buf); break; + case MRB_TT_HASH: mrb_gc_free_ht(mrb, (struct RClass*)obj); break; + case MRB_TT_STRING: if (!(obj->flags & MRB_STR_SHARED)) mrb_free(mrb, ((struct RString*)obj)->buf); break; + case MRB_TT_RANGE: mrb_free(mrb, ((struct RRange*)obj)->edges); break; - case MRB_TT_REGEX: - case MRB_TT_STRUCT: - case MRB_TT_EXCEPTION: - break; + case MRB_TT_DATA: { struct RData *d = (struct RData *)obj; @@ -439,7 +440,10 @@ obj_free(mrb_state *mrb, struct RBasic *obj) d->type->dfree(mrb, d->data); } } - break; + break; + + default: + break; } obj->tt = MRB_TT_FREE; } @@ -528,16 +532,12 @@ gc_gray_mark(mrb_state *mrb, struct RBasic *obj) children += mrb_gc_mark_ht_size(mrb, (struct RClass*)obj); break; - case MRB_TT_STRING: - break; case MRB_TT_PROC: case MRB_TT_RANGE: children+=2; break; - case MRB_TT_REGEX: - case MRB_TT_STRUCT: - case MRB_TT_EXCEPTION: + default: break; } return children; -- cgit v1.2.3 From 132dd25528ce073690f5489b38a0ab64044dd2e7 Mon Sep 17 00:00:00 2001 From: Patrick Hogan Date: Wed, 25 Apr 2012 11:19:25 -0500 Subject: Remove a bunch of unused variables. Removed or commented out to stop compiler whining about them. Signed-off-by: Patrick Hogan --- src/hash.c | 1 - src/kernel.c | 4 +--- src/variable.c | 1 - src/vm.c | 3 ++- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/hash.c b/src/hash.c index bb530ff96..5b54eb648 100644 --- a/src/hash.c +++ b/src/hash.c @@ -164,7 +164,6 @@ mrb_hash_set(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value val) /* mr { khash_t(ht) *h; khiter_t k; - int r; mrb_hash_modify(mrb, hash); h = RHASH_H_TBL(hash); diff --git a/src/kernel.c b/src/kernel.c index dce9e249b..8c2f092a8 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -628,9 +628,7 @@ mrb_obj_init_copy(mrb_state *mrb, mrb_value self) mrb_value mrb_obj_instance_eval(mrb_state *mrb, mrb_value self) { - mrb_value *argv; - int argc; - mrb_value b, klass; + mrb_value b; mrb_get_args(mrb, "&", &b); return mrb_yield_with_self(mrb, b, 0, 0, self); diff --git a/src/variable.c b/src/variable.c index a9f04538b..c34942afe 100644 --- a/src/variable.c +++ b/src/variable.c @@ -61,7 +61,6 @@ mrb_gc_mark_iv(mrb_state *mrb, struct RObject *obj) size_t mrb_gc_mark_iv_size(mrb_state *mrb, struct RObject *obj) { - khiter_t k; struct kh_iv *h = obj->iv; if (!h) return 0; diff --git a/src/vm.c b/src/vm.c index 036d20287..f74aac1b8 100644 --- a/src/vm.c +++ b/src/vm.c @@ -877,9 +877,11 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) int o = (ax>>13)&0x1f; int r = (ax>>12)&0x1; int m2 = (ax>>7)&0x1f; + /* unused int k = (ax>>2)&0x1f; int kd = (ax>>1)&0x1; int b = (ax>>0)& 0x1; + */ int argc = mrb->ci->argc; mrb_value *argv = regs+1; int len = m1 + o + r + m2; @@ -953,7 +955,6 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) if (mrb->exc) { mrb_callinfo *ci; - int ridx; L_RAISE: ci = mrb->ci; -- cgit v1.2.3 From a4c98538138f0b525a6f3056456e0cadc51d461d Mon Sep 17 00:00:00 2001 From: Patrick Hogan Date: Wed, 25 Apr 2012 11:21:14 -0500 Subject: More switch statement cleanup. Signed-off-by: Patrick Hogan --- src/class.c | 16 ++++++++++------ src/kernel.c | 4 ++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/class.c b/src/class.c index fadc56437..f9d6696ba 100644 --- a/src/class.c +++ b/src/class.c @@ -942,12 +942,16 @@ mrb_mod_to_s(mrb_state *mrb, mrb_value klass) switch (mrb_type(klass)) { - case MRB_TT_CLASS: - snprintf(buf, 256, "#", c); - break; - case MRB_TT_MODULE: - snprintf(buf, 256, "#", c); - break; + case MRB_TT_CLASS: + snprintf(buf, 256, "#", c); + break; + + case MRB_TT_MODULE: + snprintf(buf, 256, "#", c); + break; + + default: + break; } return mrb_str_dup(mrb, mrb_str_new_cstr(mrb, buf)); } diff --git a/src/kernel.c b/src/kernel.c index 8c2f092a8..6b6aab661 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -397,6 +397,10 @@ init_copy(mrb_state *mrb, mrb_value dest, mrb_value obj) if (ROBJECT(obj)->iv) { ROBJECT(dest)->iv = ROBJECT(obj)->iv; } + break; + + default: + break; } mrb_funcall(mrb, dest, "initialize_copy", 1, obj); } -- cgit v1.2.3 From a408ba2dd62c7677f1bbffc9d948f53ec630bfb7 Mon Sep 17 00:00:00 2001 From: Patrick Hogan Date: Wed, 25 Apr 2012 11:25:09 -0500 Subject: Remove unused ret argument from kh_put. It doesn't appear to serve any purpose and allows removing warning about various unused variables littered around. Signed-off-by: Patrick Hogan --- include/mruby/khash.h | 2 +- src/class.c | 6 ++---- src/hash.c | 8 +++----- src/symbol.c | 5 ++--- src/variable.c | 8 +++----- 5 files changed, 11 insertions(+), 18 deletions(-) diff --git a/include/mruby/khash.h b/include/mruby/khash.h index a17db425a..173f5d20d 100644 --- a/include/mruby/khash.h +++ b/include/mruby/khash.h @@ -168,7 +168,7 @@ static uint8_t __m[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; #define kh_destroy(name, h) kh_destroy_##name(h) #define kh_clear(name, h) kh_clear_##name(h) #define kh_resize(name, h, s) kh_resize_##name(h, s) -#define kh_put(name, h, k, r) kh_put_##name(h, k) +#define kh_put(name, h, k) kh_put_##name(h, k) #define kh_get(name, h, k) kh_get_##name(h, k) #define kh_del(name, h, k) kh_del_##name(h, k) #define kh_debug(name, h) kh_debug_##name(h) diff --git a/src/class.c b/src/class.c index f9d6696ba..879502364 100644 --- a/src/class.c +++ b/src/class.c @@ -292,10 +292,9 @@ mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym mid, struct RPro { khash_t(mt) *h = c->mt; khiter_t k; - int ret; if (!h) h = c->mt = kh_init(mt, mrb); - k = kh_put(mt, h, mid, &ret); + k = kh_put(mt, h, mid); kh_value(h, k) = p; } @@ -320,10 +319,9 @@ mrb_define_method_vm(mrb_state *mrb, struct RClass *c, mrb_sym name, mrb_value b { khash_t(mt) *h = c->mt; khiter_t k; - int ret; if (!h) h = c->mt = kh_init(mt, mrb); - k = kh_put(mt, h, name, &ret); + k = kh_put(mt, h, name); kh_value(h, k) = mrb_proc_ptr(body); } diff --git a/src/hash.c b/src/hash.c index 5b54eb648..b1df78a3e 100644 --- a/src/hash.c +++ b/src/hash.c @@ -171,7 +171,7 @@ mrb_hash_set(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value val) /* mr k = kh_get(ht, h, key); if (k == kh_end(h)) { /* expand */ - k = kh_put(ht, h, KEY(key), &r); + k = kh_put(ht, h, KEY(key)); } kh_value(h, k) = val; @@ -219,7 +219,6 @@ mrb_hash_dup(mrb_state *mrb, mrb_value hash) struct RHash* ret; khash_t(ht) *h, *ret_h; khiter_t k, ret_k; - int r; ret = mrb_obj_alloc(mrb, MRB_TT_HASH, mrb->hash_class); ret->ht = kh_init(ht, mrb); @@ -230,7 +229,7 @@ mrb_hash_dup(mrb_state *mrb, mrb_value hash) for (k = kh_begin(h); k != kh_end(h); k++) { if (kh_exist(h,k)) { - ret_k = kh_put(ht, ret_h, KEY(kh_key(h,k)), &r); + ret_k = kh_put(ht, ret_h, KEY(kh_key(h,k))); kh_val(ret_h, ret_k) = kh_val(h,k); } } @@ -615,7 +614,6 @@ mrb_hash_shift(mrb_state *mrb, mrb_value hash) khiter_t k; mrb_value delKey, delVal; mrb_value result; - int r; mrb_hash_modify(mrb, hash); if (h) { @@ -627,7 +625,7 @@ mrb_hash_shift(mrb_state *mrb, mrb_value hash) delVal = mrb_hash_delete_key(mrb, hash, delKey); result = mrb_hash_new(mrb, 1); - k = kh_put(ht, RHASH_H_TBL(result), KEY(delKey), &r); + k = kh_put(ht, RHASH_H_TBL(result), KEY(delKey)); kh_value(RHASH_H_TBL(result), k) = delVal; return result; } diff --git a/src/symbol.c b/src/symbol.c index 14721e0a2..bbc5246fe 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -32,7 +32,6 @@ mrb_intern(mrb_state *mrb, const char *name) khash_t(n2s) *h = mrb->name2sym; khash_t(s2n) *rh = mrb->sym2name; khiter_t k; - int r; size_t len; char *p; mrb_sym sym; @@ -46,10 +45,10 @@ mrb_intern(mrb_state *mrb, const char *name) p = mrb_malloc(mrb, len+1); memcpy(p, name, len); p[len] = 0; - k = kh_put(n2s, h, p, &r); + k = kh_put(n2s, h, p); kh_value(h, k) = sym; - k = kh_put(s2n, rh, sym, &r); + k = kh_put(s2n, rh, sym); kh_value(rh, k) = p; return sym; diff --git a/src/variable.c b/src/variable.c index c34942afe..171706f13 100644 --- a/src/variable.c +++ b/src/variable.c @@ -114,9 +114,8 @@ static void ivset(mrb_state *mrb, struct kh_iv *h, mrb_sym sym, mrb_value v) { khiter_t k; - int r; - k = kh_put(iv, h, sym, &r); + k = kh_put(iv, h, sym); kh_value(h, k) = v; } @@ -179,14 +178,13 @@ mrb_vm_cv_set(mrb_state *mrb, mrb_sym sym, mrb_value v) struct RClass *c = mrb->ci->target_class; khash_t(iv) *h; khiter_t k; - int r; while (c) { if (c->iv) { h = c->iv; k = kh_get(iv, h, sym); if (k != kh_end(h)) { - k = kh_put(iv, h, sym, &r); + k = kh_put(iv, h, sym); kh_value(h, k) = v; } } @@ -194,7 +192,7 @@ mrb_vm_cv_set(mrb_state *mrb, mrb_sym sym, mrb_value v) } c = mrb->ci->target_class; h = c->iv = kh_init(iv, mrb); - k = kh_put(iv, h, sym, &r); + k = kh_put(iv, h, sym); kh_value(h, k) = v; } -- cgit v1.2.3 From ec27c18dae5d8362fc461231863ecafbcddcfb64 Mon Sep 17 00:00:00 2001 From: Patrick Hogan Date: Wed, 25 Apr 2012 11:30:56 -0500 Subject: Fix a few casting warnings. Signed-off-by: Patrick Hogan --- src/etc.c | 2 +- src/parse.y | 2 +- src/proc.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/etc.c b/src/etc.c index 4b77fd1f9..e82657a97 100644 --- a/src/etc.c +++ b/src/etc.c @@ -31,7 +31,7 @@ mrb_data_object_alloc(mrb_state *mrb, struct RClass *klass, void *ptr, const str data = mrb_obj_alloc(mrb, MRB_TT_DATA, klass); data->data = ptr; - data->type = type; + data->type = (struct mrb_data_type *) type; return data; } diff --git a/src/parse.y b/src/parse.y index be18b1d35..04e0a9d01 100644 --- a/src/parse.y +++ b/src/parse.y @@ -4658,7 +4658,7 @@ parser_new(mrb_state *mrb) p->cmd_start = TRUE; p->in_def = p->in_single = FALSE; - p->capture_errors = NULL; + p->capture_errors = 0; p->lineno = 1; #if defined(PARSER_TEST) || defined(PARSER_DEBUG) diff --git a/src/proc.c b/src/proc.c index d4d57c6aa..f819a8130 100644 --- a/src/proc.c +++ b/src/proc.c @@ -30,7 +30,7 @@ mrb_closure_new(mrb_state *mrb, mrb_irep *irep) struct REnv *e; if (!mrb->ci->env) { - e = mrb_obj_alloc(mrb, MRB_TT_ENV, mrb->ci->proc->env); + e = mrb_obj_alloc(mrb, MRB_TT_ENV, (struct RClass *) mrb->ci->proc->env); e->flags= (unsigned int)irep->nlocals; e->mid = mrb->ci->mid; e->cioff = mrb->ci - mrb->cibase; -- cgit v1.2.3 From 4b8515184d9c197e5360ca931f414103068a5df2 Mon Sep 17 00:00:00 2001 From: Patrick Hogan Date: Wed, 25 Apr 2012 11:32:00 -0500 Subject: mrb_read_irep should take const char * Signed-off-by: Patrick Hogan --- include/mruby/dump.h | 2 +- src/load.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mruby/dump.h b/include/mruby/dump.h index 1f211aa0b..1bdd9b91e 100644 --- a/include/mruby/dump.h +++ b/include/mruby/dump.h @@ -11,7 +11,7 @@ int mrb_dump_irep(mrb_state*,int,FILE*); int mrb_load_irep(mrb_state*,FILE*); int mrb_load_irep_offset(mrb_state*,FILE*,long); -int mrb_read_irep(mrb_state*,char*); +int mrb_read_irep(mrb_state*,const char*); int mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname); diff --git a/src/load.c b/src/load.c index dfad68622..19b630660 100644 --- a/src/load.c +++ b/src/load.c @@ -495,7 +495,7 @@ error_exit: } int -mrb_read_irep(mrb_state *mrb, char *bin) +mrb_read_irep(mrb_state *mrb, const char *bin) { int ret = MRB_DUMP_OK, i, n, nirep, sirep; uint32_t len; -- cgit v1.2.3 From 27cfbbe43add267129a6a690c1603ca72a4d06f2 Mon Sep 17 00:00:00 2001 From: Patrick Hogan Date: Wed, 25 Apr 2012 11:33:10 -0500 Subject: size_t is unsigned and can never be < 0 Removed to silence warning. Signed-off-by: Patrick Hogan --- src/string.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/string.c b/src/string.c index efa4a107c..9867d014a 100644 --- a/src/string.c +++ b/src/string.c @@ -148,10 +148,6 @@ mrb_str_resize(mrb_state *mrb, mrb_value str, size_t len) { size_t slen; - if (len < 0) { - mrb_raise(mrb, E_ARGUMENT_ERROR, "negative string size (or size too big)"); - } - mrb_str_modify(mrb, str); slen = RSTRING_LEN(str); if (len != slen) { @@ -509,10 +505,6 @@ str_new(mrb_state *mrb, enum mrb_vtype ttype, const char *p, size_t len) { mrb_value str; - if (len < 0) { - mrb_raise(mrb, E_ARGUMENT_ERROR, "negative string size (or size too big)"); - } - //str = str_alloc(mrb); str = mrb_str_buf_new(mrb, len); #ifdef INCLUDE_ENCODING @@ -600,9 +592,6 @@ mrb_value mrb_str_buf_cat(mrb_state *mrb, mrb_value str, const char *ptr, size_t len) { if (len == 0) return str; - if (len < 0) { - mrb_raise(mrb, E_ARGUMENT_ERROR, "negative string size (or size too big)"); - } return str_buf_cat(mrb, str, ptr, len); } -- cgit v1.2.3 From f9647592ef940271ff2c45ef2c1e42989646cdb7 Mon Sep 17 00:00:00 2001 From: Patrick Hogan Date: Wed, 25 Apr 2012 18:25:50 -0500 Subject: Remove unused variable in khash Signed-off-by: Patrick Hogan --- include/mruby/khash.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/mruby/khash.h b/include/mruby/khash.h index 173f5d20d..6f369a455 100644 --- a/include/mruby/khash.h +++ b/include/mruby/khash.h @@ -108,7 +108,6 @@ static uint8_t __m[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; while( new_n_buckets < limit ) new_n_buckets *= 2; \ } \ uint8_t *old_e_flags = h->e_flags; \ - uint8_t *old_d_flags = h->d_flags; \ khkey_t *old_keys = h->keys; \ khval_t *old_vals = h->vals; \ khint_t old_n_buckets = h->n_buckets; \ -- cgit v1.2.3