The Battle for Wesnoth  1.15.12+dev
Macros | Functions
lmem.h File Reference
#include <stddef.h>
#include "llimits.h"
#include "lua.h"
Include dependency graph for lmem.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define luaM_error(L)   luaD_throw(L, LUA_ERRMEM)
 
#define luaM_testsize(n, e)   (sizeof(n) >= sizeof(size_t) && cast_sizet((n)) + 1 > MAX_SIZET/(e))
 
#define luaM_checksize(L, n, e)   (luaM_testsize(n,e) ? luaM_toobig(L) : cast_void(0))
 
#define luaM_limitN(n, t)
 
#define luaM_reallocvchar(L, b, on, n)   cast_charp(luaM_saferealloc_(L, (b), (on)*sizeof(char), (n)*sizeof(char)))
 
#define luaM_freemem(L, b, s)   luaM_free_(L, (b), (s))
 
#define luaM_free(L, b)   luaM_free_(L, (b), sizeof(*(b)))
 
#define luaM_freearray(L, b, n)   luaM_free_(L, (b), (n)*sizeof(*(b)))
 
#define luaM_new(L, t)   cast(t*, luaM_malloc_(L, sizeof(t), 0))
 
#define luaM_newvector(L, n, t)   cast(t*, luaM_malloc_(L, (n)*sizeof(t), 0))
 
#define luaM_newvectorchecked(L, n, t)   (luaM_checksize(L,n,sizeof(t)), luaM_newvector(L,n,t))
 
#define luaM_newobject(L, tag, s)   luaM_malloc_(L, (s), tag)
 
#define luaM_growvector(L, v, nelems, size, t, limit, e)
 
#define luaM_reallocvector(L, v, oldn, n, t)
 
#define luaM_shrinkvector(L, v, size, fs, t)   ((v)=cast(t *, luaM_shrinkvector_(L, v, &(size), fs, sizeof(t))))
 

Functions

LUAI_FUNC l_noret luaM_toobig (lua_State *L)
 
LUAI_FUNC void * luaM_realloc_ (lua_State *L, void *block, size_t oldsize, size_t size)
 
LUAI_FUNC void * luaM_saferealloc_ (lua_State *L, void *block, size_t oldsize, size_t size)
 
LUAI_FUNC void luaM_free_ (lua_State *L, void *block, size_t osize)
 
LUAI_FUNC void * luaM_growaux_ (lua_State *L, void *block, int nelems, int *size, int size_elem, int limit, const char *what)
 
LUAI_FUNC void * luaM_shrinkvector_ (lua_State *L, void *block, int *nelem, int final_n, int size_elem)
 
LUAI_FUNC void * luaM_malloc_ (lua_State *L, size_t size, int tag)
 

Macro Definition Documentation

◆ luaM_checksize

#define luaM_checksize (   L,
  n,
  e 
)    (luaM_testsize(n,e) ? luaM_toobig(L) : cast_void(0))

Definition at line 34 of file lmem.h.

◆ luaM_error

#define luaM_error (   L)    luaD_throw(L, LUA_ERRMEM)

◆ luaM_free

#define luaM_free (   L,
  b 
)    luaM_free_(L, (b), sizeof(*(b)))

Definition at line 56 of file lmem.h.

Referenced by freeupval(), luaE_freeCI(), luaE_freethread(), luaE_shrinkCI(), luaF_freeproto(), and luaH_free().

◆ luaM_freearray

#define luaM_freearray (   L,
  b,
  n 
)    luaM_free_(L, (b), (n)*sizeof(*(b)))

Definition at line 57 of file lmem.h.

Referenced by close_state(), freehash(), freestack(), luaD_protectedparser(), luaF_freeproto(), and luaH_free().

◆ luaM_freemem

#define luaM_freemem (   L,
  b,
  s 
)    luaM_free_(L, (b), (s))

Definition at line 55 of file lmem.h.

Referenced by freeobj().

◆ luaM_growvector

#define luaM_growvector (   L,
  v,
  nelems,
  size,
  t,
  limit,
  e 
)
Value:
((v)=cast(t *, luaM_growaux_(L,v,nelems,&(size),sizeof(t), \
luaM_limitN(limit,t),e)))
#define cast(t, exp)
Definition: llimits.h:123
std::size_t size(const std::string &str)
Length in characters of a UTF-8 string.
Definition: unicode.cpp:86
#define luaM_limitN(n, t)
Definition: lmem.h:44
LUAI_FUNC void * luaM_growaux_(lua_State *L, void *block, int nelems, int *size, int size_elem, int limit, const char *what)
Definition: lmem.cpp:79
double t
Definition: astarsearch.cpp:64
#define e

Definition at line 66 of file lmem.h.

Referenced by addk(), addprototype(), allocupvalue(), luaK_code(), new_localvar(), newlabelentry(), registerlocalvar(), and savelineinfo().

◆ luaM_limitN

#define luaM_limitN (   n,
  t 
)
Value:
((cast_sizet(n) <= MAX_SIZET/sizeof(t)) ? (n) : \
cast_uint((MAX_SIZET/sizeof(t))))
#define cast_uint(i)
Definition: llimits.h:129
#define MAX_SIZET
Definition: lauxlib.cpp:32
double t
Definition: astarsearch.cpp:64
#define cast_sizet(i)
Definition: llimits.h:134
static map_location::DIRECTION n

Definition at line 44 of file lmem.h.

◆ luaM_new

#define luaM_new (   L,
  t 
)    cast(t*, luaM_malloc_(L, sizeof(t), 0))

Definition at line 59 of file lmem.h.

Referenced by luaE_extendCI().

◆ luaM_newobject

#define luaM_newobject (   L,
  tag,
  s 
)    luaM_malloc_(L, (s), tag)

Definition at line 64 of file lmem.h.

Referenced by lua_newthread(), and luaC_newobj().

◆ luaM_newvector

#define luaM_newvector (   L,
  n,
  t 
)    cast(t*, luaM_malloc_(L, (n)*sizeof(t), 0))

Definition at line 60 of file lmem.h.

Referenced by luaS_init(), setnodevector(), and stack_init().

◆ luaM_newvectorchecked

#define luaM_newvectorchecked (   L,
  n,
  t 
)    (luaM_checksize(L,n,sizeof(t)), luaM_newvector(L,n,t))

Definition at line 61 of file lmem.h.

Referenced by loadCode(), loadConstants(), loadDebug(), loadProtos(), and loadUpvalues().

◆ luaM_reallocvchar

#define luaM_reallocvchar (   L,
  b,
  on,
  n 
)    cast_charp(luaM_saferealloc_(L, (b), (on)*sizeof(char), (n)*sizeof(char)))

Definition at line 52 of file lmem.h.

◆ luaM_reallocvector

#define luaM_reallocvector (   L,
  v,
  oldn,
  n,
  t 
)
Value:
(cast(t *, luaM_realloc_(L, v, cast_sizet(oldn) * sizeof(t), \
cast_sizet(n) * sizeof(t))))
#define cast(t, exp)
Definition: llimits.h:123
LUAI_FUNC void * luaM_realloc_(lua_State *L, void *block, size_t oldsize, size_t size)
Definition: lmem.cpp:162
double t
Definition: astarsearch.cpp:64
#define cast_sizet(i)
Definition: llimits.h:134
static map_location::DIRECTION n

Definition at line 70 of file lmem.h.

Referenced by luaD_reallocstack(), luaH_resize(), and luaS_resize().

◆ luaM_shrinkvector

#define luaM_shrinkvector (   L,
  v,
  size,
  fs,
  t 
)    ((v)=cast(t *, luaM_shrinkvector_(L, v, &(size), fs, sizeof(t))))

Definition at line 74 of file lmem.h.

Referenced by close_func().

◆ luaM_testsize

#define luaM_testsize (   n,
  e 
)    (sizeof(n) >= sizeof(size_t) && cast_sizet((n)) + 1 > MAX_SIZET/(e))

Definition at line 31 of file lmem.h.

Function Documentation

◆ luaM_free_()

LUAI_FUNC void luaM_free_ ( lua_State L,
void *  block,
size_t  osize 
)

Definition at line 132 of file lmem.cpp.

References global_State::frealloc, g, G, global_State::GCdebt, lua_assert, and global_State::ud.

◆ luaM_growaux_()

LUAI_FUNC void* luaM_growaux_ ( lua_State L,
void *  block,
int  nelems,
int *  size,
int  size_elem,
int  limit,
const char *  what 
)

◆ luaM_malloc_()

LUAI_FUNC void* luaM_malloc_ ( lua_State L,
size_t  size,
int  tag 
)

Definition at line 188 of file lmem.cpp.

References firsttry, g, G, global_State::GCdebt, luaM_error, utf8::size(), tryagain(), and unlikely.

◆ luaM_realloc_()

LUAI_FUNC void* luaM_realloc_ ( lua_State L,
void *  block,
size_t  oldsize,
size_t  size 
)

Definition at line 162 of file lmem.cpp.

References firsttry, g, G, global_State::GCdebt, lua_assert, tryagain(), and unlikely.

Referenced by luaM_saferealloc_().

◆ luaM_saferealloc_()

LUAI_FUNC void* luaM_saferealloc_ ( lua_State L,
void *  block,
size_t  oldsize,
size_t  size 
)

Definition at line 179 of file lmem.cpp.

References luaM_error, luaM_realloc_(), and unlikely.

Referenced by luaM_growaux_(), and luaM_shrinkvector_().

◆ luaM_shrinkvector_()

LUAI_FUNC void* luaM_shrinkvector_ ( lua_State L,
void *  block,
int *  nelem,
int  final_n,
int  size_elem 
)

Definition at line 110 of file lmem.cpp.

References cast_sizet, lua_assert, and luaM_saferealloc_().

◆ luaM_toobig()

LUAI_FUNC l_noret luaM_toobig ( lua_State L)

Definition at line 124 of file lmem.cpp.

References luaG_runerror().

Referenced by luaS_newlstr(), and luaS_newudata().