16#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
17#include <malloc/malloc.h>
18#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX)
20#elif defined(SK_BUILD_FOR_WIN)
24#if defined(SK_DEBUG) && defined(SK_BUILD_FOR_WIN)
27#ifndef FAST_FAIL_FATAL_APP_EXIT
28#define FAST_FAIL_FATAL_APP_EXIT 7
32#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
33 #define SK_DEBUGFAILF(fmt, ...) SK_ABORT(fmt"\n", __VA_ARGS__)
35 #define SK_DEBUGFAILF(fmt, ...) SkASSERT((SkDebugf(fmt"\n", __VA_ARGS__), false))
41#if defined(SK_BUILD_FOR_AFL_FUZZ)
49 if (size > 0 && p ==
nullptr) {
57#if defined(SK_DEBUG) && defined(SK_BUILD_FOR_WIN)
58 __fastfail(FAST_FAIL_FATAL_APP_EXIT);
59#elif defined(__clang__)
68#if defined(SK_BUILD_FOR_AFL_FUZZ)
96#if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) && defined(__BIONIC__)
105 (void)mallopt(M_THREAD_DISABLE_MEM_INIT, 1);
108#if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) && defined(__BIONIC__)
109 (void)mallopt(M_THREAD_DISABLE_MEM_INIT, 0);
120 size_t completeSize = size;
123 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
125 completeSize = std::max(malloc_size(addr), size);
126 #elif defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 17
127 completeSize = malloc_usable_size(addr);
129 #elif defined(SK_BUILD_FOR_UNIX)
130 completeSize = malloc_usable_size(addr);
132 #elif defined(SK_BUILD_FOR_WIN)
133 completeSize = _msize(addr);
#define SkDEBUGFAIL(message)
@ SK_MALLOC_ZERO_INITIALIZE
void * sk_malloc_flags(size_t size, unsigned flags)
size_t sk_malloc_size(void *addr, size_t size)
static void * throw_on_failure(size_t size, void *p)
void * sk_realloc_throw(void *addr, size_t size)
#define SK_DEBUGFAILF(fmt,...)
void sk_out_of_memory(void)
FlutterSemanticsFlag flags