|  | // Copyright 2020 PDFium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | // Deliberately not including opj_malloc.h, which has poisoned malloc and | 
|  | // friends. | 
|  |  | 
|  | #include "core/fxcrt/fx_memory.h" | 
|  | #include "third_party/base/memory/aligned_memory.h" | 
|  |  | 
|  | extern "C" { | 
|  |  | 
|  | void* opj_malloc(size_t size) { | 
|  | return FXMEM_DefaultAlloc(size); | 
|  | } | 
|  |  | 
|  | void* opj_calloc(size_t numOfElements, size_t sizeOfElements) { | 
|  | return FXMEM_DefaultCalloc(numOfElements, sizeOfElements); | 
|  | } | 
|  |  | 
|  | void* opj_aligned_malloc(size_t size) { | 
|  | return size ? pdfium::base::AlignedAlloc(size, 16) : nullptr; | 
|  | } | 
|  |  | 
|  | void opj_aligned_free(void* ptr) { | 
|  | pdfium::base::AlignedFree(ptr); | 
|  | } | 
|  |  | 
|  | void* opj_aligned_32_malloc(size_t size) { | 
|  | return size ? pdfium::base::AlignedAlloc(size, 32) : nullptr; | 
|  | } | 
|  |  | 
|  | void* opj_realloc(void* m, size_t s) { | 
|  | return FXMEM_DefaultRealloc(m, s); | 
|  | } | 
|  |  | 
|  | void opj_free(void* m) { | 
|  | if (m) | 
|  | FXMEM_DefaultFree(m); | 
|  | } | 
|  |  | 
|  | }  // extern "C" |