merge the pushuserdata and setmetatable to one process

This commit is contained in:
Anod Chow 2018-09-05 13:35:11 +08:00
parent a655bfdcf8
commit ecb457dcb1

View File

@ -517,9 +517,10 @@ WRITE_BUILDIN_TEMPLATE( float, writeFloat )
lua_setmetatable( L, -2 ); \ lua_setmetatable( L, -2 ); \
} }
#define lua_pushuserdata( L, p ){ \ #define lua_pushbuffer( L, p ){ \
void *m = lua_newuserdata(L, sizeof(p)); \ void *m = lua_newuserdata(L, sizeof(p)); \
memcpy(m, &p, sizeof(p)); \ memcpy(m, &p, sizeof(p)); \
set_bytearr_metatable( L ); \
} }
static inline Buf* lua_tobuffer(lua_State *L, int index) static inline Buf* lua_tobuffer(lua_State *L, int index)
@ -560,8 +561,7 @@ static int lbytearr_create( lua_State *L )
Buf* retval; Buf* retval;
new_buffer( retval, size, endian ); new_buffer( retval, size, endian );
lua_pushuserdata( L, retval ); lua_pushbuffer( L, retval );
set_bytearr_metatable( L );
return 1; return 1;
} }
@ -627,8 +627,7 @@ static int lbytearr_init( lua_State *L )
setPosition(retval, 0); setPosition(retval, 0);
} }
lua_pushuserdata(L, retval); lua_pushbuffer(L, retval);
set_bytearr_metatable(L);
return 1; return 1;
} }
@ -651,9 +650,7 @@ static int lbytearr_load( lua_State *L )
return 0; return 0;
} }
lua_pushuserdata( L, retval ); lua_pushbuffer( L, retval );
set_bytearr_metatable( L );
return 1; return 1;
} }
@ -884,8 +881,7 @@ static int lbytearr_slice( lua_State *L )
} }
r = cut(p, start, end-start); r = cut(p, start, end-start);
} }
lua_pushuserdata(L, r); lua_pushbuffer(L, r);
set_bytearr_metatable(L);
return 1; return 1;
} }