[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Need for help...
- From: Asko Kauppi <Asko.Kauppi@...>
- Date: Tue, 18 Feb 2003 12:34:14 +0200
Does anyone know what 'lua_newuserdata()' really is and why / where it
should be used?
I'm doing an (experimental) gluax compatibility cover over old-style C API.
The following extract is from 'luasocket.c':
/* declare new Lua tags for used userdata values */
p_tags tags = (p_tags) lua_newuserdata(L, sizeof(t_tags));
tags->client = lua_newtag(L);
tags->server = lua_newtag(L);
tags->table = lua_newtag(L);
tags->udp = lua_newtag(L);
'p_tags' is simply (same source file):
typedef struct t_tags {
int client, server, table, udp;
} t_tags;
typedef t_tags *p_tags;
Question is, what is really the importance / need for 'lua_newuserdata()'?
It's not documented in 4.0 PDF and in my understanding, is just a fancy
'alloc'. I must be missing something...?
Declaration in 'luaapi.c':
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;
}
-ak
###########################################
This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.