1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "JBig2_Object.h" 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "JBig2_Module.h" 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid *CJBig2_Object::operator new(size_t size, CJBig2_Module *pModule, FX_LPCSTR filename, int line) 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CJBig2_Object *p; 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov p = (CJBig2_Object *)pModule->JBig2_Malloc((FX_DWORD)size); 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov p->m_pModule = pModule; 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return p; 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJBig2_Object::operator delete(void *p, CJBig2_Module *pModule, FX_LPCSTR filename, int line) 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov pModule->JBig2_Free(p); 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid *CJBig2_Object::operator new(size_t size, CJBig2_Module *pModule) 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CJBig2_Object *p; 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov p = (CJBig2_Object *)pModule->JBig2_Malloc((FX_DWORD)size); 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov p->m_pModule = pModule; 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return p; 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJBig2_Object::operator delete(void *p) 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ((CJBig2_Object *)p)->m_pModule->JBig2_Free(p); 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJBig2_Object::operator delete(void *p, CJBig2_Module *pModule) 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov pModule->JBig2_Free(p); 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid *CJBig2_Object::operator new[](size_t size, CJBig2_Module *pModule, size_t unit_size, 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_LPCSTR filename, int line) 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void *p; 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BYTE *pCur, *pEnd; 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov p = (FX_BYTE *)pModule->JBig2_Malloc((FX_DWORD)size); 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov pCur = (FX_BYTE *)p; 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov pEnd = pCur + size; 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov for(; pCur < pEnd; pCur += unit_size) { 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ((CJBig2_Object *)pCur)->m_pModule = pModule; 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return p; 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJBig2_Object::operator delete[](void *p, CJBig2_Module *pModule, size_t unit_size, 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_LPCSTR filename, int line) 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov pModule->JBig2_Free(p); 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid *CJBig2_Object::operator new[](size_t size, CJBig2_Module *pModule, size_t unit_size) 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void *p; 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BYTE *pCur, *pEnd; 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov p = (FX_BYTE *)pModule->JBig2_Malloc((FX_DWORD)size); 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov pCur = (FX_BYTE *)p; 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov pEnd = pCur + size; 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov for(; pCur < pEnd; pCur += unit_size) { 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ((CJBig2_Object *)pCur)->m_pModule = pModule; 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return p; 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJBig2_Object::operator delete[](void* p) 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ((CJBig2_Object *)p)->m_pModule->JBig2_Free(p); 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJBig2_Object::operator delete[](void *p, CJBig2_Module *pModule, size_t unit_size) 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov pModule->JBig2_Free(p); 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 73