summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c6
-rw-r--r--mrbgems/mruby-socket/test/sockettest.c1
-rw-r--r--src/vm.c4
3 files changed, 6 insertions, 5 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index efd20d908..98b215f6b 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -2378,9 +2378,9 @@ codegen(codegen_scope *s, node *tree, int val)
#endif
{
if (i == -1) genop_1(s, OP_LOADI__1, cursp());
- else if (i < 0) genop_2(s, OP_LOADINEG, cursp(), -i);
- else if (i < 8) genop_1(s, OP_LOADI_0 + i, cursp());
- else if (i <= 0xffff) genop_2(s, OP_LOADI, cursp(), i);
+ else if (i < 0) genop_2(s, OP_LOADINEG, cursp(), (uint16_t)-i);
+ else if (i < 8) genop_1(s, OP_LOADI_0 + (uint8_t)i, cursp());
+ else if (i <= 0xffff) genop_2(s, OP_LOADI, cursp(), (uint16_t)i);
else {
int off = new_lit(s, mrb_fixnum_value(i));
genop_2(s, OP_LOADL, cursp(), off);
diff --git a/mrbgems/mruby-socket/test/sockettest.c b/mrbgems/mruby-socket/test/sockettest.c
index 086bc4892..3017c7cc1 100644
--- a/mrbgems/mruby-socket/test/sockettest.c
+++ b/mrbgems/mruby-socket/test/sockettest.c
@@ -12,6 +12,7 @@
#include <fcntl.h>
#include <sys/stat.h>
+#define open _open
#define close _close
#define unlink _unlink
diff --git a/src/vm.c b/src/vm.c
index 77d9316d4..70c27da57 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -176,7 +176,7 @@ envadjust(mrb_state *mrb, mrb_value *oldbase, mrb_value *newbase, size_t oldsize
/** def rec ; $deep =+ 1 ; if $deep > 1000 ; return 0 ; end ; rec ; end */
static void
-stack_extend_alloc(mrb_state *mrb, int room)
+stack_extend_alloc(mrb_state *mrb, mrb_int room)
{
mrb_value *oldbase = mrb->c->stbase;
mrb_value *newstack;
@@ -333,7 +333,7 @@ ecall(mrb_state *mrb)
struct REnv *env;
ptrdiff_t cioff;
int ai = mrb_gc_arena_save(mrb);
- uint8_t i = --c->eidx;
+ uint16_t i = --c->eidx;
int nregs;
if (i<0) return;