aboutsummaryrefslogtreecommitdiff
path: root/src/lua/net
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-08-12 21:52:15 +0800
committerchai <chaifix@163.com>2018-08-12 21:52:15 +0800
commit02298dd5b704e9a87b907e1e7df27decccfd0620 (patch)
treec55b3b82940e044e3c748dd9107956b61b02d95d /src/lua/net
parent7b34bd98bb00796febd5351b9d2e75fd2c247432 (diff)
*update
Diffstat (limited to 'src/lua/net')
-rw-r--r--src/lua/net/lua_net_Buffer.h6
-rw-r--r--src/lua/net/luaopen_Buffer.cpp16
-rw-r--r--src/lua/net/luaopen_net.cpp6
3 files changed, 14 insertions, 14 deletions
diff --git a/src/lua/net/lua_net_Buffer.h b/src/lua/net/lua_net_Buffer.h
index 51c7598..7fba37f 100644
--- a/src/lua/net/lua_net_Buffer.h
+++ b/src/lua/net/lua_net_Buffer.h
@@ -65,19 +65,19 @@ namespace net
int grabInteger(int* length, int offset = 0)
{
*length = sizeof(int);
- return *((int*)buffer);
+ return *((int*)(buffer + offset));
}
float grabFloat(int* length, int offset = 0)
{
*length = sizeof(float);
- return *((float*)buffer);
+ return *((float*)(buffer + offset));
}
bool grabBoolean(int* length, int offset = 0)
{
*length = sizeof(bool);
- return *((bool*)buffer);
+ return *((bool*)(buffer + offset));
}
char* buffer;
diff --git a/src/lua/net/luaopen_Buffer.cpp b/src/lua/net/luaopen_Buffer.cpp
index 3a8353b..9278544 100644
--- a/src/lua/net/luaopen_Buffer.cpp
+++ b/src/lua/net/luaopen_Buffer.cpp
@@ -23,15 +23,15 @@ namespace net
{
Buffer* buffer = checkNetBuffer(L);
const int vp = 2;
- if (luax_isinteger(L, vp))
+ if (luax_isintegerstrict(L, vp))
{
int n = luax_checkinteger(L, vp);
int size = sizeof(n);
buffer->append(&n, size);
luax_pushinteger(L, size);
return 1;
- }
- else if (luax_isfloat(L, vp))
+ }
+ else if (luax_isfloatstrict(L, vp))
{
float n = luax_checknumber(L, vp);
int size = sizeof(n);
@@ -39,7 +39,7 @@ namespace net
luax_pushinteger(L, size);
return 1;
}
- else if (luax_isboolean(L, vp))
+ else if (luax_isbooleanstrict(L, vp))
{
bool n = luax_checkbool(L, vp);
int size = sizeof(n);
@@ -47,7 +47,7 @@ namespace net
luax_pushinteger(L, size);
return 1;
}
- else if (luax_isstring(L, vp))
+ else if (luax_isstringstrict(L, vp))
{
const char* str = luax_checkstring(L, vp);
int size = strlen(str) + 1;
@@ -83,7 +83,7 @@ namespace net
int integer = buffer->grabInteger(&len, offset);
luax_pushinteger(L, integer);
luax_pushinteger(L, len);
- return 1;
+ return 2;
}
static int l_grabFloat(lua_State* L)
@@ -94,7 +94,7 @@ namespace net
float floatv = buffer->grabFloat(&len, offset);
luax_pushnumber(L, floatv);
luax_pushinteger(L, len);
- return 1;
+ return 2;
}
static int l_grabBoolean(lua_State* L)
@@ -105,7 +105,7 @@ namespace net
bool boolean = buffer->grabBoolean(&len, offset);
luax_pushboolean(L, boolean);
luax_pushinteger(L, len);
- return 1;
+ return 2;
}
static const luaL_Reg netbuffer_function[] = {
diff --git a/src/lua/net/luaopen_net.cpp b/src/lua/net/luaopen_net.cpp
index 4bbb7e8..e2b9a9a 100644
--- a/src/lua/net/luaopen_net.cpp
+++ b/src/lua/net/luaopen_net.cpp
@@ -47,9 +47,9 @@ namespace lua
// type, address, port
else if (luax_gettop(L) == 3)
{
- if (luax_isstring(L, 2))
+ if (luax_isstringstrict(L, 2))
info.address = tk_strtohl(luax_checkstring(L, 2));
- else if(luax_isinteger(L, 2))
+ else if(luax_isintegerstrict(L, 2))
info.address = luax_checkinteger(L, 2);
info.port = luax_checkinteger(L, 3);
}
@@ -64,7 +64,7 @@ namespace lua
{
int size = luax_checkinteger(L, 1);
Proxy* proxy = (Proxy*)luax_newinstance(L, JIN_NETWORK_BUFFER, sizeof(Proxy));
- net::Buffer* buffer = new net::Buffer();
+ net::Buffer* buffer = new net::Buffer(size);
proxy->bind(buffer, JIN_NETWORK_BUFFER);
return 1;
}