diff options
author | chai <chaifix@163.com> | 2018-08-12 21:52:15 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-08-12 21:52:15 +0800 |
commit | 02298dd5b704e9a87b907e1e7df27decccfd0620 (patch) | |
tree | c55b3b82940e044e3c748dd9107956b61b02d95d /src/lua/net | |
parent | 7b34bd98bb00796febd5351b9d2e75fd2c247432 (diff) |
*update
Diffstat (limited to 'src/lua/net')
-rw-r--r-- | src/lua/net/lua_net_Buffer.h | 6 | ||||
-rw-r--r-- | src/lua/net/luaopen_Buffer.cpp | 16 | ||||
-rw-r--r-- | src/lua/net/luaopen_net.cpp | 6 |
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; } |