diff options
author | chai <chaifix@163.com> | 2018-08-16 14:21:56 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-08-16 14:21:56 +0800 |
commit | 8585c92b7d0744a1f1a39c872cf5096621161b6c (patch) | |
tree | 6aa02138f39f7b11ab17c7399064353092b8df0c /src/lua/net/luaopen_Buffer.cpp | |
parent | be9b27dbf550093b555ab3087c11b38c89ab9fd0 (diff) |
*update
Diffstat (limited to 'src/lua/net/luaopen_Buffer.cpp')
-rw-r--r-- | src/lua/net/luaopen_Buffer.cpp | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/lua/net/luaopen_Buffer.cpp b/src/lua/net/luaopen_Buffer.cpp index 6d42c86..e7100cc 100644 --- a/src/lua/net/luaopen_Buffer.cpp +++ b/src/lua/net/luaopen_Buffer.cpp @@ -10,24 +10,22 @@ namespace lua namespace net { - static inline Buffer* checkNetBuffer(lua_State* L) + static inline Ref<Buffer>& checkNetBuffer(lua_State* L) { Proxy* proxy = (Proxy*)luax_checktype(L, 1, JIN_NETWORK_BUFFER); - if (proxy != 0 && proxy != nullptr) - return (Buffer*)proxy->object; - return nullptr; + return proxy->getRef<Buffer>(); } // net.Buffer:append(value) -> value_length static int l_append(lua_State* L) { - Buffer* buffer = checkNetBuffer(L); + Ref<Buffer>& ref = checkNetBuffer(L); const int vp = 2; if (luax_isintegerstrict(L, vp)) { int n = luax_checkinteger(L, vp); int size = sizeof(n); - buffer->append(&n, size); + (*ref).append(&n, size); luax_pushinteger(L, size); return 1; } @@ -35,7 +33,7 @@ namespace net { float n = luax_checknumber(L, vp); int size = sizeof(n); - buffer->append(&n, size); + (*ref).append(&n, size); luax_pushinteger(L, size); return 1; } @@ -43,7 +41,7 @@ namespace net { bool n = luax_checkbool(L, vp); int size = sizeof(n); - buffer->append(&n, size); + (*ref).append(&n, size); luax_pushinteger(L, size); return 1; } @@ -51,7 +49,7 @@ namespace net { const char* str = luax_checkstring(L, vp); int size = strlen(str) + 1; - buffer->append(str, size); + (*ref).append(str, size); luax_pushinteger(L, size); return 1; } @@ -65,10 +63,10 @@ namespace net // net.Buffer:grabString(offset) -> string, length static int l_grabString(lua_State* L) { - Buffer* buffer = checkNetBuffer(L); + Ref<Buffer>& ref = checkNetBuffer(L); int offset = luax_checkinteger(L, 2); int len; - const char* str = buffer->grabString(&len, offset); + const char* str = (*ref).grabString(&len, offset); luax_pushstring(L, str); luax_pushinteger(L, len); return 2; @@ -77,10 +75,10 @@ namespace net // net.Buffer:grabInteger(offset) -> integer, length static int l_grabInteger(lua_State* L) { - Buffer* buffer = checkNetBuffer(L); + Ref<Buffer>& ref = checkNetBuffer(L); int offset = luax_checkinteger(L, 2); int len; - int integer = buffer->grabInteger(&len, offset); + int integer = (*ref).grabInteger(&len, offset); luax_pushinteger(L, integer); luax_pushinteger(L, len); return 2; @@ -88,10 +86,10 @@ namespace net static int l_grabFloat(lua_State* L) { - Buffer* buffer = checkNetBuffer(L); + Ref<Buffer>& ref = checkNetBuffer(L); int offset = luax_checkinteger(L, 2); int len; - float floatv = buffer->grabFloat(&len, offset); + float floatv = (*ref).grabFloat(&len, offset); luax_pushnumber(L, floatv); luax_pushinteger(L, len); return 2; @@ -99,10 +97,10 @@ namespace net static int l_grabBoolean(lua_State* L) { - Buffer* buffer = checkNetBuffer(L); + Ref<Buffer>& ref = checkNetBuffer(L); int offset = luax_checkinteger(L, 2); int len; - bool boolean = buffer->grabBoolean(&len, offset); + bool boolean = (*ref).grabBoolean(&len, offset); luax_pushboolean(L, boolean); luax_pushinteger(L, len); return 2; |