annotate lib/lua/lua-5.2.2/lmem.h @ 2553:48708da03b7f

Party Creation UI logic separated from MainMenu
author a.parshin
date Wed, 13 May 2015 02:20:05 +0200
parents 41cc4dd3c122
children
rev   line source
1866
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
1 /*
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
2 ** $Id: lmem.h,v 1.40 2013/02/20 14:08:21 roberto Exp $
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
3 ** Interface to Memory Manager
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
4 ** See Copyright Notice in lua.h
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
5 */
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
6
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
7 #ifndef lmem_h
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
8 #define lmem_h
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
9
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
10
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
11 #include <stddef.h>
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
12
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
13 #include "llimits.h"
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
14 #include "lua.h"
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
15
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
16
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
17 /*
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
18 ** This macro avoids the runtime division MAX_SIZET/(e), as 'e' is
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
19 ** always constant.
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
20 ** The macro is somewhat complex to avoid warnings:
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
21 ** +1 avoids warnings of "comparison has constant result";
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
22 ** cast to 'void' avoids warnings of "value unused".
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
23 */
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
24 #define luaM_reallocv(L,b,on,n,e) \
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
25 (cast(void, \
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
26 (cast(size_t, (n)+1) > MAX_SIZET/(e)) ? (luaM_toobig(L), 0) : 0), \
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
27 luaM_realloc_(L, (b), (on)*(e), (n)*(e)))
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
28
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
29 #define luaM_freemem(L, b, s) luaM_realloc_(L, (b), (s), 0)
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
30 #define luaM_free(L, b) luaM_realloc_(L, (b), sizeof(*(b)), 0)
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
31 #define luaM_freearray(L, b, n) luaM_reallocv(L, (b), n, 0, sizeof((b)[0]))
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
32
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
33 #define luaM_malloc(L,s) luaM_realloc_(L, NULL, 0, (s))
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
34 #define luaM_new(L,t) cast(t *, luaM_malloc(L, sizeof(t)))
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
35 #define luaM_newvector(L,n,t) \
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
36 cast(t *, luaM_reallocv(L, NULL, 0, n, sizeof(t)))
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
37
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
38 #define luaM_newobject(L,tag,s) luaM_realloc_(L, NULL, tag, (s))
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
39
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
40 #define luaM_growvector(L,v,nelems,size,t,limit,e) \
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
41 if ((nelems)+1 > (size)) \
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
42 ((v)=cast(t *, luaM_growaux_(L,v,&(size),sizeof(t),limit,e)))
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
43
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
44 #define luaM_reallocvector(L, v,oldn,n,t) \
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
45 ((v)=cast(t *, luaM_reallocv(L, v, oldn, n, sizeof(t))))
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
46
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
47 LUAI_FUNC l_noret luaM_toobig (lua_State *L);
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
48
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
49 /* not to be called directly */
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
50 LUAI_FUNC void *luaM_realloc_ (lua_State *L, void *block, size_t oldsize,
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
51 size_t size);
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
52 LUAI_FUNC void *luaM_growaux_ (lua_State *L, void *block, int *size,
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
53 size_t size_elem, int limit,
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
54 const char *what);
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
55
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
56 #endif
41cc4dd3c122 Lua 5.2.2 added.
Nomad
parents:
diff changeset
57