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