| VIPS Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
#include <vips/vips.h> #define VIPS_FREEF (F, S) #define VIPS_FREE (S) #define VIPS_SETSTR (S, V) #define VIPS_NEW (IM, T) #define VIPS_ARRAY (IM, N, T) void * vips_malloc (VipsImage *image,size_t size); int vips_free (void *s); char * vips_strdup (VipsImage *image,const char *str);
Simple memory allocation utilities. These functions and macros help
allocate and free memory. Most of VIPS uses them, though some parts use
the g_malloc() system instead, confusingly.
If you compile with DEBUGM it will track allocations for you, though
valgrind or dmalloc are better solutions.
#define VIPS_NEW( IM, T ) ((T *) vips_malloc( (IM), sizeof( T )))
|
allocate memory local to IM, or NULL for no auto-free |
|
type of thing to allocate |
Returns : |
A pointer of type T *, or NULL on error. |
#define VIPS_ARRAY( IM, N, T ) ((T *) vips_malloc( (IM), (N) * sizeof( T )))
|
allocate memory local to IM, or NULL for no auto-free |
|
number of T 's to allocate |
|
type of thing to allocate |
Returns : |
A pointer of type T *, or NULL on error. |
void * vips_malloc (VipsImage *image,size_t size);
Malloc local to im, that is, the memory will be automatically
freed for you when the image is closed. If im is NULL, you need to free
the memory explicitly with vips_free().
If allocation fails vips_malloc() returns NULL and
sets an error message.
If two threads try to allocate local to the same im at the same time, you
can get heap corruption.
|
allocate memory local to this VipsImage, or NULL
|
|
number of bytes to allocate |
Returns : |
a pointer to the allocated memory, or NULL on error. |
int vips_free (void *s);
VIPS free function. VIPS tries to use this instead of free(). It always
returns zero, so it can be used as a callback handler.
Only use it to free
memory that was previously allocated with vips_malloc() with a NULL first
argument.
|
memory to free |