Пример #1
0
LUA_API void *lua_newuserdata (lua_State *L, size_t size) {
  TString *ts = luaS_newudata(L, size, NULL);
  tsvalue(L->top) = ts;
  ttype(L->top) = LUA_TUSERDATA;
  api_incr_top(L);
  return ts->u.d.value;
}
Пример #2
0
Файл: lapi.c Проект: zig/dcplaya
LUA_API void *lua_newuserdata (lua_State *L, size_t size) {
/*  TString *ts = luaS_newudata(L, size, NULL); */
  TString *ts = luaS_newudata(L, (size==0) ? 1 : size, NULL); /* change in version 4.0.1 reported by VP */
  tsvalue(L->top) = ts;
  ttype(L->top) = LUA_TUSERDATA;
  api_incr_top(L);
  return ts->u.d.value;
}
Пример #3
0
LUA_API void lua_newuserdatabox (lua_State *L, void *ptr) {
  Udata *u;
  lua_lock(L);
  u = luaS_newudata(L, 4);
  u->uv.len = 4;  // user data box bit is set.
  *(void**)(u + 1) = ptr;
  setuvalue(L->top, u);
  api_incr_top(L);
  lua_unlock(L);
}