16#ifndef WPIUTIL_WPI_MEMALLOC_H
17#define WPIUTIL_WPI_MEMALLOC_H
19#include "wpi/Compiler.h"
20#include "wpi/ErrorHandling.h"
28#pragma warning(disable : 6387)
29#pragma warning(disable : 28196)
30#pragma warning(disable : 28183)
33LLVM_ATTRIBUTE_RETURNS_NONNULL
inline void *
safe_malloc(
size_t Sz) {
34 void *Result = std::malloc(Sz);
35 if (Result ==
nullptr) {
41 report_bad_alloc_error(
"Allocation failed");
46LLVM_ATTRIBUTE_RETURNS_NONNULL
inline void *
safe_calloc(
size_t Count,
48 void *Result = std::calloc(Count, Sz);
49 if (Result ==
nullptr) {
53 if (Count == 0 || Sz == 0)
55 report_bad_alloc_error(
"Allocation failed");
60LLVM_ATTRIBUTE_RETURNS_NONNULL
inline void *
safe_realloc(
void *Ptr,
size_t Sz) {
61 void *Result = std::realloc(Ptr, Sz);
62 if (Result ==
nullptr) {
68 report_bad_alloc_error(
"Allocation failed");
82LLVM_ATTRIBUTE_RETURNS_NONNULL LLVM_ATTRIBUTE_RETURNS_NOALIAS
void *
Definition ntcore_cpp.h:26
LLVM_ATTRIBUTE_RETURNS_NONNULL void * safe_malloc(size_t Sz)
Definition MemAlloc.h:33
void deallocate_buffer(void *Ptr, size_t Size, size_t Alignment)
Deallocate a buffer of memory with the given size and alignment.
LLVM_ATTRIBUTE_RETURNS_NONNULL void * safe_realloc(void *Ptr, size_t Sz)
Definition MemAlloc.h:60
LLVM_ATTRIBUTE_RETURNS_NONNULL void * safe_calloc(size_t Count, size_t Sz)
Definition MemAlloc.h:46
LLVM_ATTRIBUTE_RETURNS_NONNULL LLVM_ATTRIBUTE_RETURNS_NOALIAS void * allocate_buffer(size_t Size, size_t Alignment)
Allocate a buffer of memory with the given size and alignment.