** generic allocation routine. */
| 74 | ** generic allocation routine. |
| 75 | */ |
| 76 | void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) { |
| 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) |
| 81 | luaD_throw(L, LUA_ERRMEM); |
| 82 | lua_assert((nsize == 0) == (block == NULL)); |
| 83 | g->totalbytes = (g->totalbytes - osize) + nsize; |
| 84 | return block; |
| 85 | } |
| 86 |