[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.4.5 Memory Allocation

The following functions act as their libc counterparts. The allocated memory is associated with the mach argument and is automatically freed upon the call to sieve_machine_destroy (mach).

Function: void * sieve_malloc (sieve_machine_t mach, size_t size)
Allocates size bytes and returns a pointer to the allocated memory.

Function: char * sieve_mstrdup (sieve_machine_t mach, const char *str)
This function returns a pointer to a new string which is a duplicate of the string str.

Function: void * sieve_mrealloc (sieve_machine_t mach, void *ptr, size_t size)
Changes the size of the memory block pointed to by ptr to size bytes. The contents will be unchanged to the minimum of the old and new sizes; newly allocated memory will be uninitialized. If ptr is NULL, the call is equivalent to sieve_malloc(mach, size); if size is equal to zero, the call is equivalent to sieve_mfree(ptr). Unless ptr is NULL, it must have been returned by an earlier call to sieve_malloc() or sieve_mrealloc().

Function: void sieve_mfree (sieve_machine_t mach, void *ptr)
sieve_mfree() frees the memory space pointed to by ptr and detaches it from the destructor list of mach. The ptr must have been returned by a previous call to sieve_malloc() or sieve_mrealloc(). Otherwise, or if sieve_mfree(ptr) has already been called before, undefined behaviour occurs.

If ptr is NULL, no operation is performed.



This document was generated by Sergey Poznyakoff on December, 23 2004 using texi2html