From 40fdbad7770fec4d8413f98832f8b8a857eda13d Mon Sep 17 00:00:00 2001
From: "p.kosyh@gmail.com"
Date: Thu, 28 Apr 2011 19:45:59 +0000
Subject: [PATCH] fix
---
src/sdl-instead/instead.c | 35 +++++++++++++++++++++++++++--------
1 file changed, 27 insertions(+), 8 deletions(-)
diff --git a/src/sdl-instead/instead.c b/src/sdl-instead/instead.c
index 361840e..af029f6 100644
--- a/src/sdl-instead/instead.c
+++ b/src/sdl-instead/instead.c
@@ -1412,49 +1412,57 @@ static int luaB_get_ticks(lua_State *L) {
static int luaB_bit_and(lua_State *L) {
unsigned int a = luaL_optnumber(L, 1, 0);
unsigned int b = luaL_optnumber(L, 2, 0);
- lua_pushnumber(L, a & b);
+ unsigned int r = a & b;
+ lua_pushnumber(L, r);
return 1;
}
static int luaB_bit_or(lua_State *L) {
unsigned int a = luaL_optnumber(L, 1, 0);
unsigned int b = luaL_optnumber(L, 2, 0);
- lua_pushnumber(L, a | b);
+ unsigned int r = a | b;
+ lua_pushnumber(L, r);
return 1;
}
static int luaB_bit_xor(lua_State *L) {
unsigned int a = luaL_optnumber(L, 1, 0);
unsigned int b = luaL_optnumber(L, 2, 0);
- lua_pushnumber(L, a ^ b);
+ unsigned int r = a ^ b;
+ lua_pushnumber(L, r);
return 1;
}
static int luaB_bit_shl(lua_State *L) {
unsigned int a = luaL_optnumber(L, 1, 0);
unsigned int b = luaL_optnumber(L, 2, 0);
- lua_pushnumber(L, a << b);
+ unsigned int r = a << b;
+ lua_pushnumber(L, r);
return 1;
}
static int luaB_bit_shr(lua_State *L) {
unsigned int a = luaL_optnumber(L, 1, 0);
unsigned int b = luaL_optnumber(L, 2, 0);
- lua_pushnumber(L, a >> b);
+ unsigned int r = a >> b;
+ lua_pushnumber(L, r);
return 1;
}
static int luaB_bit_not(lua_State *L) {
unsigned int a = luaL_optnumber(L, 1, 0);
- lua_pushnumber(L, ~a);
+ unsigned int r = ~a;
+ lua_pushnumber(L, r);
return 1;
}
static int luaB_bit_div(lua_State *L) {
unsigned int a = luaL_optnumber(L, 1, 0);
unsigned int b = luaL_optnumber(L, 2, 1);
+ unsigned int r;
if (b) {
- lua_pushnumber(L, a / b);
+ r = a / b;
+ lua_pushnumber(L, r);
return 1;
}
return 0;
@@ -1463,13 +1471,23 @@ static int luaB_bit_div(lua_State *L) {
static int luaB_bit_mod(lua_State *L) {
unsigned int a = luaL_optnumber(L, 1, 0);
unsigned int b = luaL_optnumber(L, 2, 1);
+ unsigned int r;
if (b) {
- lua_pushnumber(L, a % b);
+ r = a % b;
+ lua_pushnumber(L, r);
return 1;
}
return 0;
}
+static int luaB_bit_mul(lua_State *L) {
+ unsigned int a = luaL_optnumber(L, 1, 0);
+ unsigned int b = luaL_optnumber(L, 2, 0);
+ unsigned int r = a * b;
+ lua_pushnumber(L, r);
+ return 1;
+}
+
static const luaL_Reg base_funcs[] = {
{"doencfile", luaB_doencfile},
{"dofile", luaB_dofile},
@@ -1519,6 +1537,7 @@ static const luaL_Reg base_funcs[] = {
{"bit_not", luaB_bit_not},
{"bit_div", luaB_bit_div},
{"bit_mod", luaB_bit_mod},
+ {"bit_mul", luaB_bit_mul},
{NULL, NULL}
};