![]() |
![]() |
![]() |
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 |