aboutsummaryrefslogtreecommitdiff
path: root/src/lua/net/luaopen_Buffer.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-08-16 14:21:56 +0800
committerchai <chaifix@163.com>2018-08-16 14:21:56 +0800
commit8585c92b7d0744a1f1a39c872cf5096621161b6c (patch)
tree6aa02138f39f7b11ab17c7399064353092b8df0c /src/lua/net/luaopen_Buffer.cpp
parentbe9b27dbf550093b555ab3087c11b38c89ab9fd0 (diff)
*update
Diffstat (limited to 'src/lua/net/luaopen_Buffer.cpp')
-rw-r--r--src/lua/net/luaopen_Buffer.cpp32
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;