summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/numeric.c2
-rw-r--r--src/proc.c2
-rw-r--r--src/symbol.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/numeric.c b/src/numeric.c
index da15c92cc..71dadf35f 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -699,7 +699,7 @@ mrb_fixnum_mul(mrb_state *mrb, mrb_value x, mrb_value y)
if ((a != 0 && c/a != b) || !FIXABLE(c)) {
return mrb_float_value(mrb, (mrb_float)a*(mrb_float)b);
}
- return mrb_fixnum_value(c);
+ return mrb_fixnum_value((mrb_int)c);
}
return mrb_float_value(mrb, (mrb_float)a * mrb_to_flo(mrb, y));
}
diff --git a/src/proc.c b/src/proc.c
index ebdafccf8..4ece3c9e9 100644
--- a/src/proc.c
+++ b/src/proc.c
@@ -126,7 +126,7 @@ mrb_proc_cfunc_env_get(mrb_state *mrb, mrb_int idx)
if (!e) {
mrb_raise(mrb, E_TYPE_ERROR, "Can't get cfunc env from cfunc Proc without REnv.");
}
- if (idx < 0 || MRB_ENV_STACK_LEN(e) <= idx) {
+ if (idx < 0 || (mrb_int)MRB_ENV_STACK_LEN(e) <= idx) {
mrb_raisef(mrb, E_INDEX_ERROR, "Env index out of range: %S (expected: 0 <= index < %S)",
mrb_fixnum_value(idx), mrb_fixnum_value(MRB_ENV_STACK_LEN(e)));
}
diff --git a/src/symbol.c b/src/symbol.c
index 0bcb26adf..390d69c31 100644
--- a/src/symbol.c
+++ b/src/symbol.c
@@ -68,7 +68,7 @@ sym_intern(mrb_state *mrb, const char *name, size_t len, mrb_bool lit)
sym = ++mrb->symidx;
if (mrb->symcapa < sym) {
if (mrb->symcapa == 0) mrb->symcapa = 100;
- else mrb->symcapa *= 1.2;
+ else mrb->symcapa = (size_t)(mrb->symcapa * 1.2);
mrb->symtbl = (symbol_name*)mrb_realloc(mrb, mrb->symtbl, sizeof(symbol_name)*(mrb->symcapa+1));
}
sname = &mrb->symtbl[sym];