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