1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2011 Google Inc. 3cb93a386Sopenharmony_ci * Copyright 2012 Mozilla Foundation 4cb93a386Sopenharmony_ci * 5cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 6cb93a386Sopenharmony_ci * found in the LICENSE file. 7cb93a386Sopenharmony_ci */ 8cb93a386Sopenharmony_ci 9cb93a386Sopenharmony_ci#include "include/private/SkMalloc.h" 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci#include "include/core/SkTypes.h" 12cb93a386Sopenharmony_ci#include "mozilla/mozalloc.h" 13cb93a386Sopenharmony_ci#include "mozilla/mozalloc_abort.h" 14cb93a386Sopenharmony_ci#include "mozilla/mozalloc_oom.h" 15cb93a386Sopenharmony_ci 16cb93a386Sopenharmony_civoid sk_abort_no_print() { 17cb93a386Sopenharmony_ci mozalloc_abort("Abort from sk_abort"); 18cb93a386Sopenharmony_ci} 19cb93a386Sopenharmony_ci 20cb93a386Sopenharmony_civoid sk_out_of_memory(void) { 21cb93a386Sopenharmony_ci SkDEBUGFAIL("sk_out_of_memory"); 22cb93a386Sopenharmony_ci mozalloc_handle_oom(0); 23cb93a386Sopenharmony_ci} 24cb93a386Sopenharmony_ci 25cb93a386Sopenharmony_civoid sk_free(void* p) { 26cb93a386Sopenharmony_ci free(p); 27cb93a386Sopenharmony_ci} 28cb93a386Sopenharmony_ci 29cb93a386Sopenharmony_civoid* sk_realloc_throw(void* addr, size_t size) { 30cb93a386Sopenharmony_ci return moz_xrealloc(addr, size); 31cb93a386Sopenharmony_ci} 32cb93a386Sopenharmony_ci 33cb93a386Sopenharmony_civoid* sk_malloc_flags(size_t size, unsigned flags) { 34cb93a386Sopenharmony_ci if (flags & SK_MALLOC_ZERO_INITIALIZE) { 35cb93a386Sopenharmony_ci return (flags & SK_MALLOC_THROW) ? moz_xcalloc(size, 1) : calloc(size, 1); 36cb93a386Sopenharmony_ci } 37cb93a386Sopenharmony_ci return (flags & SK_MALLOC_THROW) ? moz_xmalloc(size) : malloc(size); 38cb93a386Sopenharmony_ci} 39