World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Heap Management

Functions responsible for allocating, freeing, and copying memory. Подробнее...

+ Граф связей класса Heap Management:

Определения типов

typedef GLsizeiptr size
 

Функции

voidav_malloc (size_t size) av_malloc_attrib av_alloc_size(1)
 
voidav_mallocz (size_t size) av_malloc_attrib av_alloc_size(1)
 
 av_alloc_size (1, 2) void *av_malloc_array(size_t nmemb
 
voidav_calloc (size_t nmemb, size_t size) av_malloc_attrib
 
voidav_realloc (void *ptr, size_t size) av_alloc_size(2)
 
av_warn_unused_result int av_reallocp (void *ptr, size_t size)
 
voidav_realloc_f (void *ptr, size_t nelem, size_t elsize)
 
 av_alloc_size (2, 3) void *av_realloc_array(void *ptr
 
int av_reallocp_array (void *ptr, size_t nmemb, size_t size)
 
voidav_fast_realloc (void *ptr, unsigned int *size, size_t min_size)
 
void av_fast_malloc (void *ptr, unsigned int *size, size_t min_size)
 
void av_fast_mallocz (void *ptr, unsigned int *size, size_t min_size)
 
void av_free (void *ptr)
 
void av_freep (void *ptr)
 
char * av_strdup (const char *s) av_malloc_attrib
 
char * av_strndup (const char *s, size_t len) av_malloc_attrib
 
voidav_memdup (const void *p, size_t size)
 
void av_memcpy_backptr (uint8_t *dst, int back, int cnt)
 

Переменные

size_t size
 
size_t nmemb
 

Подробное описание

Functions responsible for allocating, freeing, and copying memory.

All memory allocation functions have a built-in upper limit of INT_MAX bytes. This may be changed with av_max_alloc(), although exercise extreme caution when doing so.

Типы

◆ size

typedef GLint size

#include <C:/git/world-of-might-and-magic/lib/win32/x86/sdl2-2.0.12/include/SDL_opengl_glext.h>

См. определение в файле SDL_opengl_glext.h строка 540

Функции

◆ av_malloc()

void* av_malloc ( size_t  size)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate a memory block with alignment suitable for all memory accesses (including vectors if available on the CPU).

Аргументы
sizeSize in bytes for the memory block to be allocated
Возвращает
Pointer to the allocated block, or NULL if the block cannot be allocated
См. также
av_mallocz()

Используется в Movie::LoadFromLOD() и AudioBufferDataSource::Open().

+ Граф вызова функции:

◆ av_mallocz()

void* av_mallocz ( size_t  size)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate a memory block with alignment suitable for all memory accesses (including vectors if available on the CPU) and zero all the bytes of the block.

Аргументы
sizeSize in bytes for the memory block to be allocated
Возвращает
Pointer to the allocated block, or NULL if it cannot be allocated
См. также
av_malloc()

◆ av_alloc_size() [1/2]

av_alloc_size ( ,
 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate a memory block for an array with av_malloc().

The allocated memory will have size size * nmemb bytes.

Аргументы
nmembNumber of element
sizeSize of a single element
Возвращает
Pointer to the allocated block, or NULL if the block cannot be allocated
См. также
av_malloc()

Allocate a memory block for an array with av_mallocz().

The allocated memory will have size size * nmemb bytes.

Аргументы
nmembNumber of elements
sizeSize of the single element
Возвращает
Pointer to the allocated block, or NULL if the block cannot be allocated
См. также
av_mallocz()
av_malloc_array()

◆ av_calloc()

void* av_calloc ( size_t  nmemb,
size_t  size 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Non-inlined equivalent of av_mallocz_array().

Created for symmetry with the calloc() C function.

◆ av_realloc()

void* av_realloc ( void ptr,
size_t  size 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate, reallocate, or free a block of memory.

If ptr is NULL and size > 0, allocate a new block. If size is zero, free the memory block pointed to by ptr. Otherwise, expand or shrink that block of memory according to size.

Аргументы
ptrPointer to a memory block already allocated with av_realloc() or NULL
sizeSize in bytes of the memory block to be allocated or reallocated
Возвращает
Pointer to a newly-reallocated block or NULL if the block cannot be reallocated or the function is used to free the memory block
Предупреждения
Unlike av_malloc(), the returned pointer is not guaranteed to be correctly aligned.
См. также
av_fast_realloc()
av_reallocp()

◆ av_reallocp()

av_warn_unused_result int av_reallocp ( void ptr,
size_t  size 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate, reallocate, or free a block of memory through a pointer to a pointer.

If *ptr is NULL and size > 0, allocate a new block. If size is zero, free the memory block pointed to by *ptr. Otherwise, expand or shrink that block of memory according to size.

Аргументы
[in,out]ptrPointer to a pointer to a memory block already allocated with av_realloc(), or a pointer to NULL. The pointer is updated on success, or freed on failure.
[in]sizeSize in bytes for the memory block to be allocated or reallocated
Возвращает
Zero on success, an AVERROR error code on failure
Предупреждения
Unlike av_malloc(), the allocated memory is not guaranteed to be correctly aligned.

◆ av_realloc_f()

void* av_realloc_f ( void ptr,
size_t  nelem,
size_t  elsize 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate, reallocate, or free a block of memory.

This function does the same thing as av_realloc(), except:

  • It takes two size arguments and allocates nelem * elsize bytes, after checking the result of the multiplication for integer overflow.
  • It frees the input block in case of failure, thus avoiding the memory leak with the classic
    buf = realloc(buf);
    if (!buf)
    return -1;
    pattern.

◆ av_alloc_size() [2/2]

av_alloc_size ( ,
 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate, reallocate, or free an array.

If ptr is NULL and nmemb > 0, allocate a new block. If nmemb is zero, free the memory block pointed to by ptr.

Аргументы
ptrPointer to a memory block already allocated with av_realloc() or NULL
nmembNumber of elements in the array
sizeSize of the single element of the array
Возвращает
Pointer to a newly-reallocated block or NULL if the block cannot be reallocated or the function is used to free the memory block
Предупреждения
Unlike av_malloc(), the allocated memory is not guaranteed to be correctly aligned.
См. также
av_reallocp_array()

◆ av_reallocp_array()

int av_reallocp_array ( void ptr,
size_t  nmemb,
size_t  size 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate, reallocate, or free an array through a pointer to a pointer.

If *ptr is NULL and nmemb > 0, allocate a new block. If nmemb is zero, free the memory block pointed to by *ptr.

Аргументы
[in,out]ptrPointer to a pointer to a memory block already allocated with av_realloc(), or a pointer to NULL. The pointer is updated on success, or freed on failure.
[in]nmembNumber of elements
[in]sizeSize of the single element
Возвращает
Zero on success, an AVERROR error code on failure
Предупреждения
Unlike av_malloc(), the allocated memory is not guaranteed to be correctly aligned.

◆ av_fast_realloc()

void* av_fast_realloc ( void ptr,
unsigned int *  size,
size_t  min_size 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Reallocate the given buffer if it is not large enough, otherwise do nothing.

If the given buffer is NULL, then a new uninitialized buffer is allocated.

If the given buffer is not large enough, and reallocation fails, NULL is returned and *size is set to 0, but the original buffer is not changed or freed.

A typical use pattern follows:

uint8_t *buf = ...;
uint8_t *new_buf = av_fast_realloc(buf, &current_size, size_needed);
if (!new_buf) {
// Allocation failed; clean up original buffer
return AVERROR(ENOMEM);
}
Аргументы
[in,out]ptrAlready allocated buffer, or NULL
[in,out]sizePointer to the size of buffer ptr. *size is updated to the new allocated size, in particular 0 in case of failure.
[in]min_sizeDesired minimal size of buffer ptr
Возвращает
ptr if the buffer is large enough, a pointer to newly reallocated buffer if the buffer was not large enough, or NULL in case of error
См. также
av_realloc()
av_fast_malloc()

◆ av_fast_malloc()

void av_fast_malloc ( void ptr,
unsigned int *  size,
size_t  min_size 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate a buffer, reusing the given one if large enough.

Contrary to av_fast_realloc(), the current buffer contents might not be preserved and on error the old buffer is freed, thus no special handling to avoid memleaks is necessary.

*ptr is allowed to be NULL, in which case allocation always happens if size_needed is greater than 0.

uint8_t *buf = ...;
av_fast_malloc(&buf, &current_size, size_needed);
if (!buf) {
// Allocation failed; buf already freed
return AVERROR(ENOMEM);
}
Аргументы
[in,out]ptrPointer to pointer to an already allocated buffer. *ptr will be overwritten with pointer to new buffer on success or NULL on failure
[in,out]sizePointer to the size of buffer *ptr. *size is updated to the new allocated size, in particular 0 in case of failure.
[in]min_sizeDesired minimal size of buffer *ptr
См. также
av_realloc()
av_fast_mallocz()

◆ av_fast_mallocz()

void av_fast_mallocz ( void ptr,
unsigned int *  size,
size_t  min_size 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Allocate and clear a buffer, reusing the given one if large enough.

Like av_fast_malloc(), but all newly allocated space is initially cleared. Reused buffer is not cleared.

*ptr is allowed to be NULL, in which case allocation always happens if size_needed is greater than 0.

Аргументы
[in,out]ptrPointer to pointer to an already allocated buffer. *ptr will be overwritten with pointer to new buffer on success or NULL on failure
[in,out]sizePointer to the size of buffer *ptr. *size is updated to the new allocated size, in particular 0 in case of failure.
[in]min_sizeDesired minimal size of buffer *ptr
См. также
av_fast_malloc()

◆ av_free()

void av_free ( void ptr)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family.

Аргументы
ptrPointer to the memory block which should be freed.
Заметки
ptr = NULL is explicitly allowed.
It is recommended that you use av_freep() instead, to prevent leaving behind dangling pointers.
См. также
av_freep()

Используется в Movie::ReleaseAVCodec().

+ Граф вызова функции:

◆ av_freep()

void av_freep ( void ptr)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family, and set the pointer pointing to it to NULL.

// buf now contains a dangling pointer to freed memory, and accidental
// dereference of buf will result in a use-after-free, which may be a
// security risk.
// buf is now NULL, and accidental dereference will only result in a
// NULL-pointer dereference.
Аргументы
ptrPointer to the pointer to the memory block which should be freed
Заметки
*ptr = NULL is safe and leads to no action.
См. также
av_free()

◆ av_strdup()

char* av_strdup ( const char *  s)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Duplicate a string.

Аргументы
sString to be duplicated
Возвращает
Pointer to a newly-allocated string containing a copy of s or NULL if the string cannot be allocated
См. также
av_strndup()

◆ av_strndup()

char* av_strndup ( const char *  s,
size_t  len 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Duplicate a substring of a string.

Аргументы
sString to be duplicated
lenMaximum length of the resulting string (not counting the terminating byte)
Возвращает
Pointer to a newly-allocated string containing a substring of s or NULL if the string cannot be allocated

◆ av_memdup()

void* av_memdup ( const void p,
size_t  size 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Duplicate a buffer with av_malloc().

Аргументы
pBuffer to be duplicated
sizeSize in bytes of the buffer copied
Возвращает
Pointer to a newly allocated buffer containing a copy of p or NULL if the buffer cannot be allocated

◆ av_memcpy_backptr()

void av_memcpy_backptr ( uint8_t dst,
int  back,
int  cnt 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

Overlapping memcpy() implementation.

Аргументы
dstDestination buffer
backNumber of bytes back to start copying (i.e. the initial size of the overlapping window); must be > 0
cntNumber of bytes to copy; must be >= 0
Заметки
cnt > back is valid, this will copy the bytes we just copied, thus creating a repeating pattern with a period length of back.

Переменные

◆ size

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

См. определение в файле mem.h строка 220

◆ nmemb

size_t nmemb

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/mem.h>

См. определение в файле mem.h строка 323

av_malloc
void * av_malloc(size_t size) av_malloc_attrib av_alloc_size(1)
av_fast_realloc
void * av_fast_realloc(void *ptr, unsigned int *size, size_t min_size)
av_freep
void av_freep(void *ptr)
buf
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: SDL_opengl_glext.h:2483
uint8_t
unsigned __int8 uint8_t
Definition: SDL_config.h:35
av_free
void av_free(void *ptr)
av_fast_malloc
void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size)