CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
lmem.c-Dateireferenz
#include <stddef.h>
#include "lua.h"
#include "ldebug.h"
#include "ldo.h"
#include "lmem.h"
#include "lobject.h"
#include "lstate.h"
+ Include-Abhängigkeitsdiagramm für lmem.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define lmem_c
 
#define LUA_CORE
 
#define MINSIZEARRAY   4
 

Funktionen

LUAI_FUNC void * luaM_growaux_ (lua_State *L, void *block, int *size, size_t size_elems, int limit, const char *errormsg)
 
LUAI_FUNC void * luaM_toobig (lua_State *L)
 
LUAI_FUNC void * luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize)
 

Makro-Dokumentation

#define lmem_c

Definiert in Zeile 10 der Datei lmem.c.

#define LUA_CORE

Definiert in Zeile 11 der Datei lmem.c.

#define MINSIZEARRAY   4

Definiert in Zeile 43 der Datei lmem.c.

Dokumentation der Funktionen

LUAI_FUNC void* luaM_growaux_ ( lua_State L,
void *  block,
int *  size,
size_t  size_elems,
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  osize,
size_t  nsize 
)

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 }