/usr/include/GraphicsMagick/magick/memory.h is in libgraphicsmagick1-dev 1.3.18-1ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | /*
Copyright (C) 2003-2013 GraphicsMagick Group
This program is covered by multiple licenses, which are described in
Copyright.txt. You should have received a copy of Copyright.txt with this
package; otherwise see http://www.graphicsmagick.org/www/Copyright.html.
GraphicsMagick Memory Allocation Methods.
*/
#ifndef _MAGICK_MEMORY_H
#define _MAGICK_MEMORY_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
typedef void *(*MagickMallocFunc)(size_t size) MAGICK_FUNC_ALLOC_SIZE_1ARG(1);
typedef void (*MagickFreeFunc)(void *ptr);
typedef void *(*MagickReallocFunc)(void *ptr, size_t size) MAGICK_FUNC_ALLOC_SIZE_1ARG(2);
extern MagickExport void
MagickAllocFunctions(MagickFreeFunc free_func,MagickMallocFunc malloc_func,
MagickReallocFunc realloc_func),
*MagickMalloc(const size_t size) MAGICK_FUNC_MALLOC MAGICK_FUNC_ALLOC_SIZE_1ARG(1),
*MagickMallocAligned(const size_t alignment, const size_t size) MAGICK_FUNC_MALLOC MAGICK_FUNC_ALLOC_SIZE_1ARG(2),
*MagickMallocCleared(const size_t size) MAGICK_FUNC_MALLOC MAGICK_FUNC_ALLOC_SIZE_1ARG(1),
*MagickCloneMemory(void *destination,const void *source,const size_t size) MAGICK_FUNC_NONNULL,
*MagickRealloc(void *memory,const size_t size) MAGICK_FUNC_MALLOC MAGICK_FUNC_ALLOC_SIZE_1ARG(2),
MagickFree(void *memory),
MagickFreeAligned(void *memory);
#if defined(MAGICK_IMPLEMENTATION)
extern MagickExport void
*MagickMallocAlignedArray(const size_t alignment,const size_t count,const size_t size),
*MagickMallocArray(const size_t count,const size_t size) MAGICK_FUNC_MALLOC MAGICK_FUNC_ALLOC_SIZE_2ARG(1,2);
extern MagickExport size_t
MagickArraySize(const size_t count,const size_t size);
/*
Allocate memory
*/
#define MagickAllocateMemory(type,size) \
((((size) != ((size_t) (size))) || (size == 0)) ? ((type) 0) : \
((type) MagickMalloc((size_t) (size))))
#define MagickAllocateArray(type,count,size) \
( (type) MagickMallocArray(count,size) )
/*
Free memory and set pointer to NULL
*/
#define MagickFreeMemory(memory) \
{ \
void *_magick_mp=memory; \
MagickFree(_magick_mp); \
memory=0; \
}
/*
Reallocate memory using provided pointer. If reallocation fails
then free memory, setting pointer to null. If size is 0 and memory
is not a null pointer, then free memory. This interface behaves
similar to realloc() except that memory is always freed (and pointer
set to null) if a memory allocation failure occurs.
*/
#define MagickReallocMemory(type,memory,size) \
{ \
size_t _new_size = (size_t) (size); \
void *_magick_mp = MagickRealloc(memory,_new_size); \
memory=(type) _magick_mp; \
}
/*
Allocate memory aligned to a specified alignment boundary
*/
#define MagickAllocateAlignedMemory(type,alignment,size) \
((((size) != ((size_t) (size))) || (size == 0)) ? ((type) 0) : \
((type) MAGICK_ASSUME_ALIGNED(MagickMallocAligned((size_t) alignment, (size_t) (size)),alignment)))
/*
Allocate array aligned to a specified alignment boundary
*/
#define MagickAllocateAlignedArray(type,alignment,count,size) \
((((size) != ((size_t) (size))) || (size == 0)) ? ((type) 0) : \
((type) MAGICK_ASSUME_ALIGNED(MagickMallocAlignedArray((size_t) alignment, (size_t) (count), (size_t) (size)),alignment)))
/*
Free aligned memory (from MagickAllocateAlignedMemory()) and set pointer to
NULL
*/
#define MagickFreeAlignedMemory(memory) \
{ \
void *_magick_mp=memory; \
MagickFreeAligned(_magick_mp); \
memory=0; \
}
#endif /* defined(MAGICK_IMPLEMENTATION) */
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif
/*
* Local Variables:
* mode: c
* c-basic-offset: 2
* fill-column: 78
* End:
*/
|