CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
lmem.h-Dateireferenz
#include <stddef.h>
#include "llimits.h"
#include "lua.h"
+ Include-Abhängigkeitsdiagramm für lmem.h:
+ Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define MEMERRMSG   "not enough memory"
 
#define luaM_reallocv(L, b, on, n, e)
 
#define luaM_freemem(L, b, s)   luaM_realloc_(L, (b), (s), 0)
 
#define luaM_free(L, b)   luaM_realloc_(L, (b), sizeof(*(b)), 0)
 
#define luaM_freearray(L, b, n, t)   luaM_reallocv(L, (b), n, 0, sizeof(t))
 
#define luaM_malloc(L, t)   luaM_realloc_(L, NULL, 0, (t))
 
#define luaM_new(L, t)   cast(t *, luaM_malloc(L, sizeof(t)))
 
#define luaM_newvector(L, n, t)   cast(t *, luaM_reallocv(L, NULL, 0, n, sizeof(t)))
 
#define luaM_growvector(L, v, nelems, size, t, limit, e)
 
#define luaM_reallocvector(L, v, oldn, n, t)   ((v)=cast(t *, luaM_reallocv(L, v, oldn, n, sizeof(t))))
 

Funktionen

LUAI_FUNC void * luaM_realloc_ (lua_State *L, void *block, size_t oldsize, size_t size)
 
LUAI_FUNC void * luaM_toobig (lua_State *L)
 
LUAI_FUNC void * luaM_growaux_ (lua_State *L, void *block, int *size, size_t size_elem, int limit, const char *errormsg)
 

Makro-Dokumentation

#define luaM_free (   L,
 
)    luaM_realloc_(L, (b), sizeof(*(b)), 0)

Definiert in Zeile 25 der Datei lmem.h.

#define luaM_freearray (   L,
  b,
  n,
 
)    luaM_reallocv(L, (b), n, 0, sizeof(t))

Definiert in Zeile 26 der Datei lmem.h.

#define luaM_freemem (   L,
  b,
  s 
)    luaM_realloc_(L, (b), (s), 0)

Definiert in Zeile 24 der Datei lmem.h.

#define luaM_growvector (   L,
  v,
  nelems,
  size,
  t,
  limit,
 
)
Wert:
if ((nelems)+1 > (size)) \
((v)=cast(t *, luaM_growaux_(L,v,&(size),sizeof(t),limit,e)))

Definiert in Zeile 33 der Datei lmem.h.

#define luaM_malloc (   L,
 
)    luaM_realloc_(L, NULL, 0, (t))

Definiert in Zeile 28 der Datei lmem.h.

#define luaM_new (   L,
 
)    cast(t *, luaM_malloc(L, sizeof(t)))

Definiert in Zeile 29 der Datei lmem.h.

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

Definiert in Zeile 30 der Datei lmem.h.

#define luaM_reallocv (   L,
  b,
  on,
  n,
 
)
Wert:
((cast(size_t, (n)+1) <= MAX_SIZET/(e)) ? /* +1 to avoid warnings */ \
luaM_realloc_(L, (b), (on)*(e), (n)*(e)) : \

Definiert in Zeile 19 der Datei lmem.h.

#define luaM_reallocvector (   L,
  v,
  oldn,
  n,
 
)    ((v)=cast(t *, luaM_reallocv(L, v, oldn, n, sizeof(t))))

Definiert in Zeile 37 der Datei lmem.h.

#define MEMERRMSG   "not enough memory"

Definiert in Zeile 16 der Datei lmem.h.

Dokumentation der Funktionen

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

Definiert in Zeile 46 der Datei lmem.c.

47  {
48  void *newblock;
49  int newsize;
50  if (*size >= limit/2) { /* cannot double it? */
51  if (*size >= limit) /* cannot grow even a little? */
52  luaG_runerror(L, errormsg);
53  newsize = limit; /* still have at least one free place */
54  }
55  else {
56  newsize = (*size)*2;
57  if (newsize < MINSIZEARRAY)
58  newsize = MINSIZEARRAY; /* minimum size */
59  }
60  newblock = luaM_reallocv(L, block, *size, newsize, size_elems);
61  *size = newsize; /* update only when everything else is OK */
62  return newblock;
63 }
LUAI_FUNC void* luaM_realloc_ ( lua_State L,
void *  block,
size_t  oldsize,
size_t  size 
)

Definiert in Zeile 76 der Datei lmem.c.

76  {
77  global_State *g = G(L);
78  lua_assert((osize == 0) == (block == NULL));
79  block = (*g->frealloc)(g->ud, block, osize, nsize);
80  if (block == NULL && nsize > 0)
82  lua_assert((nsize == 0) == (block == NULL));
83  g->totalbytes = (g->totalbytes - osize) + nsize;
84  return block;
85 }
LUAI_FUNC void* luaM_toobig ( lua_State L)

Definiert in Zeile 66 der Datei lmem.c.

66  {
67  luaG_runerror(L, "memory allocation error: block too big");
68  return NULL; /* to avoid warnings */
69 }