| parrotcode: Resource allocation using malloc | |
| Contents | C |

src/gc/res_lea.c - Resource allocation using malloc

This file provides alternative implementations of memory allocation function found in src/resources.c.
It is used if Configure.pl is passed the --gc=malloc or --gc=malloc-trace options.
The "lea" in the file name refers to Doug Lea, who wrote malloc implementation found in src/malloc.c.
As of May 14, 2007, it doesn't work (and hasn't worked for some time.) The problem appears to be related to strings, but actually could be somewhere else. This allocator does not support any of Parrot's Copy-on-Write schemes. Nor does the string allocator handle "external" strings.

void Parrot_go_collect(PARROT_INTERP)collect_runs count.
static PARROT_INLINE void *xmalloc(size_t size)malloc() and returns it.
Panics if there is no memory available.
static PARROT_INLINE void *xcalloc(size_t n, size_t size)calloc() and returns it.
Panics if there is no memory available.
static PARROT_INLINE void *xrealloc(void *p, size_t size)realloc() and returns it.
Panics if there is no memory available.
void Parrot_reallocate(PARROT_INTERP, Buffer *buffer, size_t newsize)bufstart for refcounting in DOD.
void Parrot_allocate(PARROT_INTERP, Buffer *buffer, size_t size)size has to be a multiple of the word size.
PObj_buflen will be set to exactly the given size.
See the comments and diagram in resources.c.This was never called anyway,
so it isn't implemented here.
void Parrot_allocate_aligned(PARROT_INTERP, Buffer *buffer, size_t size)void Parrot_reallocate_string(PARROT_INTERP, STRING *str, size_t newsize)*str and returns it.
newsize is the number of bytes memory required.
void Parrot_allocate_string(PARROT_INTERP, STRING *str, size_t size)*str and returns it.
size is the number bytes of memory required.
void Parrot_initialize_memory_pools(PARROT_INTERP)void Parrot_merge_memory_pools(Interp *dest, Interp *source)void Parrot_destroy_memory_pools(PARROT_INTERP)
config/auto/gc.pl, src/malloc.c, include/parrot/resources.h.
|
|
|