summaryrefslogtreecommitdiff
path: root/core/src/fxcodec
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/fxcodec')
-rw-r--r--core/src/fxcodec/codec/codec_int.h28
-rw-r--r--core/src/fxcodec/codec/fx_codec_fax.cpp3
-rw-r--r--core/src/fxcodec/codec/fx_codec_jbig.cpp4
-rw-r--r--core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.h3
-rw-r--r--core/src/fxcodec/jbig2/JBig2_BitStream.h15
-rw-r--r--core/src/fxcodec/jbig2/JBig2_Context.cpp174
-rw-r--r--core/src/fxcodec/jbig2/JBig2_Context.h14
-rw-r--r--core/src/fxcodec/jbig2/JBig2_Define.h24
-rw-r--r--core/src/fxcodec/jbig2/JBig2_GeneralDecoder.cpp249
-rw-r--r--core/src/fxcodec/jbig2/JBig2_GeneralDecoder.h14
-rw-r--r--core/src/fxcodec/jbig2/JBig2_HuffmanTable.h3
-rw-r--r--core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h8
-rw-r--r--core/src/fxcodec/jbig2/JBig2_Image.cpp16
-rw-r--r--core/src/fxcodec/jbig2/JBig2_Image.h10
-rw-r--r--core/src/fxcodec/jbig2/JBig2_Module.h26
-rw-r--r--core/src/fxcodec/jbig2/JBig2_Object.cpp78
-rw-r--r--core/src/fxcodec/jbig2/JBig2_Object.h55
-rw-r--r--core/src/fxcodec/jbig2/JBig2_Segment.h9
-rw-r--r--core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp21
-rw-r--r--core/src/fxcodec/jbig2/JBig2_SymbolDict.h10
20 files changed, 247 insertions, 517 deletions
diff --git a/core/src/fxcodec/codec/codec_int.h b/core/src/fxcodec/codec/codec_int.h
index ee7fe3ba6f..a37f7bd7b8 100644
--- a/core/src/fxcodec/codec/codec_int.h
+++ b/core/src/fxcodec/codec/codec_int.h
@@ -347,33 +347,6 @@ class CCodec_TiffModule : public ICodec_TiffModule {
~CCodec_TiffModule() override {}
};
-class CPDF_Jbig2Interface : public CJBig2_Module {
- public:
- virtual void* JBig2_Malloc(FX_DWORD dwSize) {
- return FX_Alloc(uint8_t, dwSize);
- }
- virtual void* JBig2_Malloc2(FX_DWORD num, FX_DWORD dwSize) {
- if (dwSize && num >= UINT_MAX / dwSize) {
- return NULL;
- }
- return FX_Alloc(uint8_t, num * dwSize);
- }
- virtual void* JBig2_Malloc3(FX_DWORD num, FX_DWORD dwSize, FX_DWORD dwSize2) {
- if (dwSize2 && dwSize >= UINT_MAX / dwSize2) {
- return NULL;
- }
- FX_DWORD size = dwSize2 * dwSize;
- if (size && num >= UINT_MAX / size) {
- return NULL;
- }
- return FX_Alloc(uint8_t, num * size);
- }
- virtual void* JBig2_Realloc(void* pMem, FX_DWORD dwSize) {
- return FX_Realloc(uint8_t, pMem, dwSize);
- }
- virtual void JBig2_Free(void* pMem) { FX_Free(pMem); }
-};
-
class CCodec_Jbig2Context {
public:
CCodec_Jbig2Context();
@@ -414,7 +387,6 @@ class CCodec_Jbig2Module : public ICodec_Jbig2Module {
void DestroyJbig2Context(void* pJbig2Context) override;
private:
- CPDF_Jbig2Interface m_Module;
std::list<CJBig2_CachePair> m_SymbolDictCache;
};
class CFX_DIBAttributeExif : public IFX_DIBAttributeExif {
diff --git a/core/src/fxcodec/codec/fx_codec_fax.cpp b/core/src/fxcodec/codec/fx_codec_fax.cpp
index 63a45c7aea..394e22b013 100644
--- a/core/src/fxcodec/codec/fx_codec_fax.cpp
+++ b/core/src/fxcodec/codec/fx_codec_fax.cpp
@@ -590,8 +590,7 @@ FX_DWORD CCodec_FaxDecoder::GetSrcOffset() {
return ret;
}
extern "C" {
-void _FaxG4Decode(void*,
- const uint8_t* src_buf,
+void _FaxG4Decode(const uint8_t* src_buf,
FX_DWORD src_size,
int* pbitpos,
uint8_t* dest_buf,
diff --git a/core/src/fxcodec/codec/fx_codec_jbig.cpp b/core/src/fxcodec/codec/fx_codec_jbig.cpp
index b95461b3e5..9361604b9d 100644
--- a/core/src/fxcodec/codec/fx_codec_jbig.cpp
+++ b/core/src/fxcodec/codec/fx_codec_jbig.cpp
@@ -48,8 +48,8 @@ FXCODEC_STATUS CCodec_Jbig2Module::StartDecode(void* pJbig2Context,
m_pJbig2Context->m_bFileReader = FALSE;
FXSYS_memset(dest_buf, 0, height * dest_pitch);
m_pJbig2Context->m_pContext = CJBig2_Context::CreateContext(
- &m_Module, (uint8_t*)global_data, global_size, (uint8_t*)src_buf,
- src_size, JBIG2_EMBED_STREAM, &m_SymbolDictCache, pPause);
+ global_data, global_size, src_buf, src_size, JBIG2_EMBED_STREAM,
+ &m_SymbolDictCache, pPause);
if (!m_pJbig2Context->m_pContext) {
return FXCODEC_STATUS_ERROR;
}
diff --git a/core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.h b/core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.h
index 4bcaa1b8a5..ca8e181da7 100644
--- a/core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.h
+++ b/core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.h
@@ -6,8 +6,9 @@
#ifndef _JBIG2_ARITH_INT_DECODER_H_
#define _JBIG2_ARITH_INT_DECODER_H_
-#include "JBig2_Module.h"
+
#include "JBig2_ArithDecoder.h"
+
class CJBig2_ArithIntDecoder {
public:
CJBig2_ArithIntDecoder();
diff --git a/core/src/fxcodec/jbig2/JBig2_BitStream.h b/core/src/fxcodec/jbig2/JBig2_BitStream.h
index 78a9dfe677..85c992f4ff 100644
--- a/core/src/fxcodec/jbig2/JBig2_BitStream.h
+++ b/core/src/fxcodec/jbig2/JBig2_BitStream.h
@@ -11,7 +11,7 @@
class CJBig2_BitStream {
public:
- CJBig2_BitStream(uint8_t* pBuffer, FX_DWORD dwLength);
+ CJBig2_BitStream(const uint8_t* pBuffer, FX_DWORD dwLength);
CJBig2_BitStream(CJBig2_BitStream& bs);
@@ -55,18 +55,18 @@ class CJBig2_BitStream {
void setBitPos(FX_DWORD dwBitPos);
- uint8_t* getBuf();
+ const uint8_t* getBuf();
FX_DWORD getLength() { return m_dwLength; }
- uint8_t* getPointer();
+ const uint8_t* getPointer();
void offset(FX_DWORD dwOffset);
FX_DWORD getByteLeft();
private:
- uint8_t* m_pBuf;
+ const uint8_t* m_pBuf;
FX_DWORD m_dwLength;
@@ -74,7 +74,8 @@ class CJBig2_BitStream {
FX_DWORD m_dwBitIdx;
};
-inline CJBig2_BitStream::CJBig2_BitStream(uint8_t* pBuffer, FX_DWORD dwLength) {
+inline CJBig2_BitStream::CJBig2_BitStream(const uint8_t* pBuffer,
+ FX_DWORD dwLength) {
m_pBuf = pBuffer;
m_dwLength = dwLength;
m_dwByteIdx = 0;
@@ -274,10 +275,10 @@ inline void CJBig2_BitStream::setBitPos(FX_DWORD dwBitPos) {
m_dwByteIdx = dwBitPos >> 3;
m_dwBitIdx = dwBitPos & 7;
}
-inline uint8_t* CJBig2_BitStream::getBuf() {
+inline const uint8_t* CJBig2_BitStream::getBuf() {
return m_pBuf;
}
-inline uint8_t* CJBig2_BitStream::getPointer() {
+inline const uint8_t* CJBig2_BitStream::getPointer() {
return m_pBuf + m_dwByteIdx;
}
inline void CJBig2_BitStream::offset(FX_DWORD dwOffset) {
diff --git a/core/src/fxcodec/jbig2/JBig2_Context.cpp b/core/src/fxcodec/jbig2/JBig2_Context.cpp
index 142611dff5..f045dbb20d 100644
--- a/core/src/fxcodec/jbig2/JBig2_Context.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_Context.cpp
@@ -17,32 +17,30 @@
const int kSymbolDictCacheMaxSize = 2;
CJBig2_Context* CJBig2_Context::CreateContext(
- CJBig2_Module* pModule,
- uint8_t* pGlobalData,
+ const uint8_t* pGlobalData,
FX_DWORD dwGlobalLength,
- uint8_t* pData,
+ const uint8_t* pData,
FX_DWORD dwLength,
int32_t nStreamType,
std::list<CJBig2_CachePair>* pSymbolDictCache,
IFX_Pause* pPause) {
- return new (pModule)
- CJBig2_Context(pGlobalData, dwGlobalLength, pData, dwLength, nStreamType,
- pSymbolDictCache, pPause);
+ return new CJBig2_Context(pGlobalData, dwGlobalLength, pData, dwLength,
+ nStreamType, pSymbolDictCache, pPause);
}
void CJBig2_Context::DestroyContext(CJBig2_Context* pContext) {
delete pContext;
}
-CJBig2_Context::CJBig2_Context(uint8_t* pGlobalData,
+CJBig2_Context::CJBig2_Context(const uint8_t* pGlobalData,
FX_DWORD dwGlobalLength,
- uint8_t* pData,
+ const uint8_t* pData,
FX_DWORD dwLength,
int32_t nStreamType,
std::list<CJBig2_CachePair>* pSymbolDictCache,
IFX_Pause* pPause) {
if (pGlobalData && (dwGlobalLength > 0)) {
- JBIG2_ALLOC(m_pGlobalContext,
- CJBig2_Context(NULL, 0, pGlobalData, dwGlobalLength,
- JBIG2_EMBED_STREAM, pSymbolDictCache, pPause));
+ m_pGlobalContext =
+ new CJBig2_Context(NULL, 0, pGlobalData, dwGlobalLength,
+ JBIG2_EMBED_STREAM, pSymbolDictCache, pPause);
} else {
m_pGlobalContext = NULL;
}
@@ -66,9 +64,7 @@ CJBig2_Context::~CJBig2_Context() {
m_pArithDecoder = NULL;
delete m_pGRD;
m_pGRD = NULL;
- if (m_gbContext) {
- m_pModule->JBig2_Free(m_gbContext);
- }
+ FX_Free(m_gbContext);
m_gbContext = NULL;
delete m_pGlobalContext;
m_pGlobalContext = NULL;
@@ -219,7 +215,7 @@ int32_t CJBig2_Context::getFirstPage(uint8_t* pBuf,
m_bFirstPage = TRUE;
m_PauseStep = 0;
delete m_pPage;
- JBIG2_ALLOC(m_pPage, CJBig2_Image(width, height, stride, pBuf));
+ m_pPage = new CJBig2_Image(width, height, stride, pBuf);
m_bBufSpecified = TRUE;
if (m_pPage && pPause && pPause->NeedToPauseNow()) {
m_PauseStep = 1;
@@ -360,8 +356,7 @@ int32_t CJBig2_Context::parseSegmentHeader(CJBig2_Segment* pSegment) {
cPSize = pSegment->m_cFlags.s.page_association_size ? 4 : 1;
if (pSegment->m_nReferred_to_segment_count) {
pSegment->m_pReferred_to_segment_numbers =
- (FX_DWORD*)m_pModule->JBig2_Malloc2(
- sizeof(FX_DWORD), pSegment->m_nReferred_to_segment_count);
+ FX_Alloc(FX_DWORD, pSegment->m_nReferred_to_segment_count);
for (int32_t i = 0; i < pSegment->m_nReferred_to_segment_count; i++) {
switch (cSSize) {
case 1:
@@ -475,11 +470,11 @@ int32_t CJBig2_Context::ProcessiveParseSegmentData(CJBig2_Segment* pSegment,
if (!m_bBufSpecified) {
delete m_pPage;
if (pPageInfo->m_dwHeight == 0xffffffff) {
- JBIG2_ALLOC(m_pPage, CJBig2_Image(pPageInfo->m_dwWidth,
- pPageInfo->m_wMaxStripeSize));
+ m_pPage = new CJBig2_Image(pPageInfo->m_dwWidth,
+ pPageInfo->m_wMaxStripeSize);
} else {
- JBIG2_ALLOC(m_pPage, CJBig2_Image(pPageInfo->m_dwWidth,
- pPageInfo->m_dwHeight));
+ m_pPage =
+ new CJBig2_Image(pPageInfo->m_dwWidth, pPageInfo->m_dwHeight);
}
}
m_pPage->fill((pPageInfo->m_cFlags & 4) ? 1 : 0);
@@ -523,11 +518,10 @@ int32_t CJBig2_Context::parseSymbolDict(CJBig2_Segment* pSegment,
CJBig2_Segment *pSeg = NULL, *pLRSeg = NULL;
FX_BOOL bUsed;
CJBig2_Image** SDINSYMS = NULL;
- CJBig2_SDDProc* pSymbolDictDecoder;
JBig2ArithCtx *gbContext = NULL, *grContext = NULL;
CJBig2_ArithDecoder* pArithDecoder;
- JBIG2_ALLOC(pSymbolDictDecoder, CJBig2_SDDProc());
- uint8_t* key = pSegment->m_pData;
+ CJBig2_SDDProc* pSymbolDictDecoder = new CJBig2_SDDProc();
+ const uint8_t* key = pSegment->m_pData;
FX_BOOL cache_hit = false;
if (m_pStream->readShortInteger(&wFlags) != 0) {
nRet = JBIG2_ERROR_TOO_SHORT;
@@ -590,8 +584,7 @@ int32_t CJBig2_Context::parseSymbolDict(CJBig2_Segment* pSegment,
if (pSymbolDictDecoder->SDNUMINSYMS == 0) {
SDINSYMS = NULL;
} else {
- SDINSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- sizeof(CJBig2_Image*), pSymbolDictDecoder->SDNUMINSYMS);
+ SDINSYMS = FX_Alloc(CJBig2_Image*, pSymbolDictDecoder->SDNUMINSYMS);
dwTemp = 0;
for (i = 0; i < pSegment->m_nReferred_to_segment_count; i++) {
pSeg = findSegmentByNumber(pSegment->m_pReferred_to_segment_numbers[i]);
@@ -681,15 +674,13 @@ int32_t CJBig2_Context::parseSymbolDict(CJBig2_Segment* pSegment,
dwTemp = pSymbolDictDecoder->SDTEMPLATE == 0
? 65536
: pSymbolDictDecoder->SDTEMPLATE == 1 ? 8192 : 1024;
- gbContext = (JBig2ArithCtx*)m_pModule->JBig2_Malloc2(
- sizeof(JBig2ArithCtx), dwTemp);
+ gbContext = FX_Alloc(JBig2ArithCtx, dwTemp);
JBIG2_memcpy(gbContext, pLRSeg->m_Result.sd->m_gbContext,
sizeof(JBig2ArithCtx) * dwTemp);
}
if (pSymbolDictDecoder->SDREFAGG == 1) {
dwTemp = pSymbolDictDecoder->SDRTEMPLATE ? 1 << 10 : 1 << 13;
- grContext = (JBig2ArithCtx*)m_pModule->JBig2_Malloc2(
- sizeof(JBig2ArithCtx), dwTemp);
+ grContext = FX_Alloc(JBig2ArithCtx, dwTemp);
JBIG2_memcpy(grContext, pLRSeg->m_Result.sd->m_grContext,
sizeof(JBig2ArithCtx) * dwTemp);
}
@@ -698,14 +689,12 @@ int32_t CJBig2_Context::parseSymbolDict(CJBig2_Segment* pSegment,
dwTemp = pSymbolDictDecoder->SDTEMPLATE == 0
? 65536
: pSymbolDictDecoder->SDTEMPLATE == 1 ? 8192 : 1024;
- gbContext = (JBig2ArithCtx*)m_pModule->JBig2_Malloc2(
- sizeof(JBig2ArithCtx), dwTemp);
+ gbContext = FX_Alloc(JBig2ArithCtx, dwTemp);
JBIG2_memset(gbContext, 0, sizeof(JBig2ArithCtx) * dwTemp);
}
if (pSymbolDictDecoder->SDREFAGG == 1) {
dwTemp = pSymbolDictDecoder->SDRTEMPLATE ? 1 << 10 : 1 << 13;
- grContext = (JBig2ArithCtx*)m_pModule->JBig2_Malloc2(
- sizeof(JBig2ArithCtx), dwTemp);
+ grContext = FX_Alloc(JBig2ArithCtx, dwTemp);
JBIG2_memset(grContext, 0, sizeof(JBig2ArithCtx) * dwTemp);
}
}
@@ -763,39 +752,27 @@ int32_t CJBig2_Context::parseSymbolDict(CJBig2_Segment* pSegment,
bUsed = FALSE;
}
delete pSymbolDictDecoder;
- if (SDINSYMS) {
- m_pModule->JBig2_Free(SDINSYMS);
- }
+ FX_Free(SDINSYMS);
delete Table_B1;
delete Table_B2;
delete Table_B3;
delete Table_B4;
delete Table_B5;
if (bUsed == FALSE) {
- if (gbContext) {
- m_pModule->JBig2_Free(gbContext);
- }
- if (grContext) {
- m_pModule->JBig2_Free(grContext);
- }
+ FX_Free(gbContext);
+ FX_Free(grContext);
}
return JBIG2_SUCCESS;
failed:
delete pSymbolDictDecoder;
- if (SDINSYMS) {
- m_pModule->JBig2_Free(SDINSYMS);
- }
+ FX_Free(SDINSYMS);
delete Table_B1;
delete Table_B2;
delete Table_B3;
delete Table_B4;
delete Table_B5;
- if (gbContext) {
- m_pModule->JBig2_Free(gbContext);
- }
- if (grContext) {
- m_pModule->JBig2_Free(grContext);
- }
+ FX_Free(gbContext);
+ FX_Free(grContext);
return nRet;
}
@@ -815,8 +792,7 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
*Table_B14 = NULL, *Table_B15 = NULL;
JBig2ArithCtx* grContext = NULL;
CJBig2_ArithDecoder* pArithDecoder;
- CJBig2_TRDProc* pTRD;
- JBIG2_ALLOC(pTRD, CJBig2_TRDProc());
+ CJBig2_TRDProc* pTRD = new CJBig2_TRDProc();
if ((parseRegionInfo(&ri) != JBIG2_SUCCESS) ||
(m_pStream->readShortInteger(&wFlags) != 0)) {
nRet = JBIG2_ERROR_TOO_SHORT;
@@ -877,8 +853,7 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
}
}
if (pTRD->SBNUMSYMS > 0) {
- SBSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(sizeof(CJBig2_Image*),
- pTRD->SBNUMSYMS);
+ SBSYMS = FX_Alloc(CJBig2_Image*, pTRD->SBNUMSYMS);
dwTemp = 0;
for (i = 0; i < pSegment->m_nReferred_to_segment_count; i++) {
pSeg = findSegmentByNumber(pSegment->m_pReferred_to_segment_numbers[i]);
@@ -1078,8 +1053,7 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
}
if (pTRD->SBREFINE == 1) {
dwTemp = pTRD->SBRTEMPLATE ? 1 << 10 : 1 << 13;
- grContext =
- (JBig2ArithCtx*)m_pModule->JBig2_Malloc2(sizeof(JBig2ArithCtx), dwTemp);
+ grContext = FX_Alloc(JBig2ArithCtx, dwTemp);
JBIG2_memset(grContext, 0, sizeof(JBig2ArithCtx) * dwTemp);
}
if (pTRD->SBHUFF == 0) {
@@ -1116,15 +1090,9 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
pSegment->m_Result.im = NULL;
}
delete pTRD;
- if (SBSYMS) {
- m_pModule->JBig2_Free(SBSYMS);
- }
- if (SBSYMCODES) {
- m_pModule->JBig2_Free(SBSYMCODES);
- }
- if (grContext) {
- m_pModule->JBig2_Free(grContext);
- }
+ FX_Free(SBSYMS);
+ FX_Free(SBSYMCODES);
+ FX_Free(grContext);
delete Table_B1;
delete Table_B6;
delete Table_B7;
@@ -1139,15 +1107,9 @@ int32_t CJBig2_Context::parseTextRegion(CJBig2_Segment* pSegment) {
return JBIG2_SUCCESS;
failed:
delete pTRD;
- if (SBSYMS) {
- m_pModule->JBig2_Free(SBSYMS);
- }
- if (SBSYMCODES) {
- m_pModule->JBig2_Free(SBSYMCODES);
- }
- if (grContext) {
- m_pModule->JBig2_Free(grContext);
- }
+ FX_Free(SBSYMS);
+ FX_Free(SBSYMCODES);
+ FX_Free(grContext);
delete Table_B1;
delete Table_B6;
delete Table_B7;
@@ -1168,9 +1130,8 @@ int32_t CJBig2_Context::parsePatternDict(CJBig2_Segment* pSegment,
uint8_t cFlags;
JBig2ArithCtx* gbContext;
CJBig2_ArithDecoder* pArithDecoder;
- CJBig2_PDDProc* pPDD;
int32_t nRet;
- JBIG2_ALLOC(pPDD, CJBig2_PDDProc());
+ CJBig2_PDDProc* pPDD = new CJBig2_PDDProc();
if ((m_pStream->read1Byte(&cFlags) != 0) ||
(m_pStream->read1Byte(&pPDD->HDPW) != 0) ||
(m_pStream->read1Byte(&pPDD->HDPH) != 0) ||
@@ -1188,19 +1149,18 @@ int32_t CJBig2_Context::parsePatternDict(CJBig2_Segment* pSegment,
if (pPDD->HDMMR == 0) {
dwTemp =
pPDD->HDTEMPLATE == 0 ? 65536 : pPDD->HDTEMPLATE == 1 ? 8192 : 1024;
- gbContext =
- (JBig2ArithCtx*)m_pModule->JBig2_Malloc2(sizeof(JBig2ArithCtx), dwTemp);
+ gbContext = FX_Alloc(JBig2ArithCtx, dwTemp);
JBIG2_memset(gbContext, 0, sizeof(JBig2ArithCtx) * dwTemp);
pArithDecoder = new CJBig2_ArithDecoder(m_pStream);
pSegment->m_Result.pd =
pPDD->decode_Arith(pArithDecoder, gbContext, pPause);
delete pArithDecoder;
if (pSegment->m_Result.pd == NULL) {
- m_pModule->JBig2_Free(gbContext);
+ FX_Free(gbContext);
nRet = JBIG2_ERROR_FATAL;
goto failed;
}
- m_pModule->JBig2_Free(gbContext);
+ FX_Free(gbContext);
m_pStream->alignByte();
m_pStream->offset(2);
} else {
@@ -1226,9 +1186,8 @@ int32_t CJBig2_Context::parseHalftoneRegion(CJBig2_Segment* pSegment,
CJBig2_PatternDict* pPatternDict;
JBig2ArithCtx* gbContext;
CJBig2_ArithDecoder* pArithDecoder;
- CJBig2_HTRDProc* pHRD;
int32_t nRet;
- JBIG2_ALLOC(pHRD, CJBig2_HTRDProc());
+ CJBig2_HTRDProc* pHRD = new CJBig2_HTRDProc();
if ((parseRegionInfo(&ri) != JBIG2_SUCCESS) ||
(m_pStream->read1Byte(&cFlags) != 0) ||
(m_pStream->readInteger(&pHRD->HGW) != 0) ||
@@ -1268,19 +1227,18 @@ int32_t CJBig2_Context::parseHalftoneRegion(CJBig2_Segment* pSegment,
pSegment->m_nResultType = JBIG2_IMAGE_POINTER;
if (pHRD->HMMR == 0) {
dwTemp = pHRD->HTEMPLATE == 0 ? 65536 : pHRD->HTEMPLATE == 1 ? 8192 : 1024;
- gbContext =
- (JBig2ArithCtx*)m_pModule->JBig2_Malloc2(sizeof(JBig2ArithCtx), dwTemp);
+ gbContext = FX_Alloc(JBig2ArithCtx, dwTemp);
JBIG2_memset(gbContext, 0, sizeof(JBig2ArithCtx) * dwTemp);
pArithDecoder = new CJBig2_ArithDecoder(m_pStream);
pSegment->m_Result.im =
pHRD->decode_Arith(pArithDecoder, gbContext, pPause);
delete pArithDecoder;
if (pSegment->m_Result.im == NULL) {
- m_pModule->JBig2_Free(gbContext);
+ FX_Free(gbContext);
nRet = JBIG2_ERROR_FATAL;
goto failed;
}
- m_pModule->JBig2_Free(gbContext);
+ FX_Free(gbContext);
m_pStream->alignByte();
m_pStream->offset(2);
} else {
@@ -1317,7 +1275,7 @@ int32_t CJBig2_Context::parseGenericRegion(CJBig2_Segment* pSegment,
uint8_t cFlags;
int32_t i, nRet;
if (m_pGRD == NULL) {
- JBIG2_ALLOC(m_pGRD, CJBig2_GRDProc());
+ m_pGRD = new CJBig2_GRDProc();
if ((parseRegionInfo(&m_ri) != JBIG2_SUCCESS) ||
(m_pStream->read1Byte(&cFlags) != 0)) {
nRet = JBIG2_ERROR_TOO_SHORT;
@@ -1356,8 +1314,7 @@ int32_t CJBig2_Context::parseGenericRegion(CJBig2_Segment* pSegment,
dwTemp =
m_pGRD->GBTEMPLATE == 0 ? 65536 : m_pGRD->GBTEMPLATE == 1 ? 8192 : 1024;
if (m_gbContext == NULL) {
- m_gbContext = (JBig2ArithCtx*)m_pModule->JBig2_Malloc(
- sizeof(JBig2ArithCtx) * dwTemp);
+ m_gbContext = FX_Alloc(JBig2ArithCtx, dwTemp);
JBIG2_memset(m_gbContext, 0, sizeof(JBig2ArithCtx) * dwTemp);
}
if (m_pArithDecoder == NULL) {
@@ -1387,13 +1344,13 @@ int32_t CJBig2_Context::parseGenericRegion(CJBig2_Segment* pSegment,
delete m_pArithDecoder;
m_pArithDecoder = NULL;
if (pSegment->m_Result.im == NULL) {
- m_pModule->JBig2_Free(m_gbContext);
+ FX_Free(m_gbContext);
nRet = JBIG2_ERROR_FATAL;
m_gbContext = NULL;
m_ProcessiveStatus = FXCODEC_STATUS_ERROR;
goto failed;
}
- m_pModule->JBig2_Free(m_gbContext);
+ FX_Free(m_gbContext);
m_gbContext = NULL;
m_pStream->alignByte();
m_pStream->offset(2);
@@ -1442,9 +1399,8 @@ int32_t CJBig2_Context::parseGenericRefinementRegion(CJBig2_Segment* pSegment) {
int32_t i, nRet;
uint8_t cFlags;
JBig2ArithCtx* grContext;
- CJBig2_GRRDProc* pGRRD;
CJBig2_ArithDecoder* pArithDecoder;
- JBIG2_ALLOC(pGRRD, CJBig2_GRRDProc());
+ CJBig2_GRRDProc* pGRRD = new CJBig2_GRRDProc();
if ((parseRegionInfo(&ri) != JBIG2_SUCCESS) ||
(m_pStream->read1Byte(&cFlags) != 0)) {
nRet = JBIG2_ERROR_TOO_SHORT;
@@ -1486,19 +1442,18 @@ int32_t CJBig2_Context::parseGenericRefinementRegion(CJBig2_Segment* pSegment) {
pGRRD->GRREFERENCEDX = 0;
pGRRD->GRREFERENCEDY = 0;
dwTemp = pGRRD->GRTEMPLATE ? 1 << 10 : 1 << 13;
- grContext =
- (JBig2ArithCtx*)m_pModule->JBig2_Malloc2(sizeof(JBig2ArithCtx), dwTemp);
+ grContext = FX_Alloc(JBig2ArithCtx, dwTemp);
JBIG2_memset(grContext, 0, sizeof(JBig2ArithCtx) * dwTemp);
pArithDecoder = new CJBig2_ArithDecoder(m_pStream);
pSegment->m_nResultType = JBIG2_IMAGE_POINTER;
pSegment->m_Result.im = pGRRD->decode(pArithDecoder, grContext);
delete pArithDecoder;
if (pSegment->m_Result.im == NULL) {
- m_pModule->JBig2_Free(grContext);
+ FX_Free(grContext);
nRet = JBIG2_ERROR_FATAL;
goto failed;
}
- m_pModule->JBig2_Free(grContext);
+ FX_Free(grContext);
m_pStream->alignByte();
m_pStream->offset(2);
if (pSegment->m_cFlags.s.type != 40) {
@@ -1554,8 +1509,7 @@ JBig2HuffmanCode* CJBig2_Context::decodeSymbolIDHuffmanTable(
int32_t nBits;
int32_t run;
FX_DWORD nTemp;
- SBSYMCODES = (JBig2HuffmanCode*)m_pModule->JBig2_Malloc2(
- sizeof(JBig2HuffmanCode), SBNUMSYMS);
+ SBSYMCODES = FX_Alloc(JBig2HuffmanCode, SBNUMSYMS);
for (i = 0; i < 35; i++) {
if (pStream->readNBits(4, &runcodes_len[i]) != 0) {
goto failed;
@@ -1620,7 +1574,7 @@ JBig2HuffmanCode* CJBig2_Context::decodeSymbolIDHuffmanTable(
huffman_assign_code(SBSYMCODES, SBNUMSYMS);
return SBSYMCODES;
failed:
- m_pModule->JBig2_Free(SBSYMCODES);
+ FX_Free(SBSYMCODES);
return NULL;
}
void CJBig2_Context::huffman_assign_code(int* CODES, int* PREFLEN, int NTEMP) {
@@ -1633,9 +1587,9 @@ void CJBig2_Context::huffman_assign_code(int* CODES, int* PREFLEN, int NTEMP) {
LENMAX = PREFLEN[i];
}
}
- LENCOUNT = (int*)m_pModule->JBig2_Malloc2(sizeof(int), (LENMAX + 1));
+ LENCOUNT = FX_Alloc(int, LENMAX + 1);
JBIG2_memset(LENCOUNT, 0, sizeof(int) * (LENMAX + 1));
- FIRSTCODE = (int*)m_pModule->JBig2_Malloc2(sizeof(int), (LENMAX + 1));
+ FIRSTCODE = FX_Alloc(int, LENMAX + 1);
for (i = 0; i < NTEMP; i++) {
LENCOUNT[PREFLEN[i]]++;
}
@@ -1655,8 +1609,8 @@ void CJBig2_Context::huffman_assign_code(int* CODES, int* PREFLEN, int NTEMP) {
}
CURLEN = CURLEN + 1;
}
- m_pModule->JBig2_Free(LENCOUNT);
- m_pModule->JBig2_Free(FIRSTCODE);
+ FX_Free(LENCOUNT);
+ FX_Free(FIRSTCODE);
}
void CJBig2_Context::huffman_assign_code(JBig2HuffmanCode* SBSYMCODES,
int NTEMP) {
@@ -1669,9 +1623,9 @@ void CJBig2_Context::huffman_assign_code(JBig2HuffmanCode* SBSYMCODES,
LENMAX = SBSYMCODES[i].codelen;
}
}
- LENCOUNT = (int*)m_pModule->JBig2_Malloc2(sizeof(int), (LENMAX + 1));
+ LENCOUNT = FX_Alloc(int, (LENMAX + 1));
JBIG2_memset(LENCOUNT, 0, sizeof(int) * (LENMAX + 1));
- FIRSTCODE = (int*)m_pModule->JBig2_Malloc2(sizeof(int), (LENMAX + 1));
+ FIRSTCODE = FX_Alloc(int, (LENMAX + 1));
for (i = 0; i < NTEMP; i++) {
LENCOUNT[SBSYMCODES[i].codelen]++;
}
@@ -1691,6 +1645,6 @@ void CJBig2_Context::huffman_assign_code(JBig2HuffmanCode* SBSYMCODES,
}
CURLEN = CURLEN + 1;
}
- m_pModule->JBig2_Free(LENCOUNT);
- m_pModule->JBig2_Free(FIRSTCODE);
+ FX_Free(LENCOUNT);
+ FX_Free(FIRSTCODE);
}
diff --git a/core/src/fxcodec/jbig2/JBig2_Context.h b/core/src/fxcodec/jbig2/JBig2_Context.h
index 0590fd157b..5ae6897bab 100644
--- a/core/src/fxcodec/jbig2/JBig2_Context.h
+++ b/core/src/fxcodec/jbig2/JBig2_Context.h
@@ -14,11 +14,10 @@
#include "../../../include/fxcodec/fx_codec_def.h"
#include "JBig2_GeneralDecoder.h"
#include "JBig2_List.h"
-#include "JBig2_Module.h"
#include "JBig2_Page.h"
#include "JBig2_Segment.h"
-using CJBig2_CachePair = std::pair<uint8_t*, CJBig2_SymbolDict*>;
+using CJBig2_CachePair = std::pair<const uint8_t*, CJBig2_SymbolDict*>;
#define JBIG2_SUCCESS 0
#define JBIG2_FAILED -1
@@ -35,13 +34,12 @@ using CJBig2_CachePair = std::pair<uint8_t*, CJBig2_SymbolDict*>;
#define JBIG2_EMBED_STREAM 3
#define JBIG2_MIN_SEGMENT_SIZE 11
-class CJBig2_Context : public CJBig2_Object {
+class CJBig2_Context {
public:
static CJBig2_Context* CreateContext(
- CJBig2_Module* pModule,
- uint8_t* pGlobalData,
+ const uint8_t* pGlobalData,
FX_DWORD dwGlobalLength,
- uint8_t* pData,
+ const uint8_t* pData,
FX_DWORD dwLength,
int32_t nStreamType,
std::list<CJBig2_CachePair>* pSymbolDictCache,
@@ -66,9 +64,9 @@ class CJBig2_Context : public CJBig2_Object {
JBIG2_IN_PAGE,
};
- CJBig2_Context(uint8_t* pGlobalData,
+ CJBig2_Context(const uint8_t* pGlobalData,
FX_DWORD dwGlobalLength,
- uint8_t* pData,
+ const uint8_t* pData,
FX_DWORD dwLength,
int32_t nStreamType,
std::list<CJBig2_CachePair>* pSymbolDictCache,
diff --git a/core/src/fxcodec/jbig2/JBig2_Define.h b/core/src/fxcodec/jbig2/JBig2_Define.h
index 3cca6acfd9..50516f5798 100644
--- a/core/src/fxcodec/jbig2/JBig2_Define.h
+++ b/core/src/fxcodec/jbig2/JBig2_Define.h
@@ -6,24 +6,28 @@
#ifndef _JBIG2_DEFINE_H_
#define _JBIG2_DEFINE_H_
+
#include "../../../include/fxcrt/fx_system.h"
#define JBIG2_memset FXSYS_memset
#define JBIG2_memcmp FXSYS_memcmp
#define JBIG2_memcpy FXSYS_memcpy
-#include "JBig2_Object.h"
#define JBIG2_OOB 1
-typedef struct {
- int32_t width, height;
- int32_t x, y;
+
+struct JBig2RegionInfo {
+ int32_t width;
+ int32_t height;
+ int32_t x;
+ int32_t y;
uint8_t flags;
-} JBig2RegionInfo;
-typedef struct {
+};
+
+struct JBig2HuffmanCode {
int32_t codelen;
int32_t code;
-} JBig2HuffmanCode;
+};
+
extern "C" {
-void _FaxG4Decode(void* pModule,
- const uint8_t* src_buf,
+void _FaxG4Decode(const uint8_t* src_buf,
FX_DWORD src_size,
int* pbitpos,
uint8_t* dest_buf,
@@ -31,9 +35,11 @@ void _FaxG4Decode(void* pModule,
int height,
int pitch = 0);
};
+
#define JBIG2_MAX_REFERRED_SEGMENT_COUNT 64
#define JBIG2_MAX_EXPORT_SYSMBOLS 65535
#define JBIG2_MAX_NEW_SYSMBOLS 65535
#define JBIG2_MAX_PATTERN_INDEX 65535
#define JBIG2_MAX_IMAGE_SIZE 65535
+
#endif
diff --git a/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.cpp b/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.cpp
index 5278e45a68..2e558ee7e8 100644
--- a/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.cpp
@@ -34,9 +34,7 @@ extern const unsigned int JBIG2_QE_NUM = FX_ArraySize(QeTable);
CJBig2_Image* CJBig2_GRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
JBig2ArithCtx* gbContext) {
if (GBW == 0 || GBH == 0) {
- CJBig2_Image* pImage;
- JBIG2_ALLOC(pImage, CJBig2_Image(GBW, GBH));
- return pImage;
+ return new CJBig2_Image(GBW, GBH);
}
if (GBTEMPLATE == 0) {
if ((GBAT[0] == 3) && (GBAT[1] == (int8_t)-1) && (GBAT[2] == (int8_t)-3) &&
@@ -71,13 +69,12 @@ CJBig2_Image* CJBig2_GRDProc::decode_Arith_Template0_opt3(
JBig2ArithCtx* gbContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GBREG;
FX_DWORD line1, line2;
uint8_t *pLine, *pLine1, *pLine2, cVal;
int32_t nStride, nStride2, k;
int32_t nLineBytes, nBitsLeft, cc;
LTP = 0;
- JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
+ CJBig2_Image* GBREG = new CJBig2_Image(GBW, GBH);
if (GBREG->m_pData == NULL) {
delete GBREG;
return NULL;
@@ -162,10 +159,9 @@ CJBig2_Image* CJBig2_GRDProc::decode_Arith_Template0_unopt(
JBig2ArithCtx* gbContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GBREG;
FX_DWORD line1, line2, line3;
LTP = 0;
- JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
+ CJBig2_Image* GBREG = new CJBig2_Image(GBW, GBH);
GBREG->fill(0);
for (FX_DWORD h = 0; h < GBH; h++) {
if (TPGDON) {
@@ -210,13 +206,12 @@ CJBig2_Image* CJBig2_GRDProc::decode_Arith_Template1_opt3(
JBig2ArithCtx* gbContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GBREG;
FX_DWORD line1, line2;
uint8_t *pLine, *pLine1, *pLine2, cVal;
int32_t nStride, nStride2, k;
int32_t nLineBytes, nBitsLeft, cc;
LTP = 0;
- JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
+ CJBig2_Image* GBREG = new CJBig2_Image(GBW, GBH);
if (GBREG->m_pData == NULL) {
delete GBREG;
return NULL;
@@ -300,10 +295,9 @@ CJBig2_Image* CJBig2_GRDProc::decode_Arith_Template1_unopt(
JBig2ArithCtx* gbContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GBREG;
FX_DWORD line1, line2, line3;
LTP = 0;
- JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
+ CJBig2_Image* GBREG = new CJBig2_Image(GBW, GBH);
GBREG->fill(0);
for (FX_DWORD h = 0; h < GBH; h++) {
if (TPGDON) {
@@ -346,13 +340,12 @@ CJBig2_Image* CJBig2_GRDProc::decode_Arith_Template2_opt3(
JBig2ArithCtx* gbContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GBREG;
FX_DWORD line1, line2;
uint8_t *pLine, *pLine1, *pLine2, cVal;
int32_t nStride, nStride2, k;
int32_t nLineBytes, nBitsLeft, cc;
LTP = 0;
- JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
+ CJBig2_Image* GBREG = new CJBig2_Image(GBW, GBH);
if (GBREG->m_pData == NULL) {
delete GBREG;
return NULL;
@@ -436,10 +429,9 @@ CJBig2_Image* CJBig2_GRDProc::decode_Arith_Template2_unopt(
JBig2ArithCtx* gbContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GBREG;
FX_DWORD line1, line2, line3;
LTP = 0;
- JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
+ CJBig2_Image* GBREG = new CJBig2_Image(GBW, GBH);
GBREG->fill(0);
for (FX_DWORD h = 0; h < GBH; h++) {
if (TPGDON) {
@@ -480,13 +472,12 @@ CJBig2_Image* CJBig2_GRDProc::decode_Arith_Template3_opt3(
JBig2ArithCtx* gbContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GBREG;
FX_DWORD line1;
uint8_t *pLine, *pLine1, cVal;
int32_t nStride, k;
int32_t nLineBytes, nBitsLeft, cc;
LTP = 0;
- JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
+ CJBig2_Image* GBREG = new CJBig2_Image(GBW, GBH);
if (GBREG->m_pData == NULL) {
delete GBREG;
return NULL;
@@ -556,10 +547,9 @@ CJBig2_Image* CJBig2_GRDProc::decode_Arith_Template3_unopt(
JBig2ArithCtx* gbContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GBREG;
FX_DWORD line1, line2;
LTP = 0;
- JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
+ CJBig2_Image* GBREG = new CJBig2_Image(GBW, GBH);
GBREG->fill(0);
for (FX_DWORD h = 0; h < GBH; h++) {
if (TPGDON) {
@@ -594,9 +584,7 @@ CJBig2_Image* CJBig2_GRDProc::decode_Arith_Template3_unopt(
CJBig2_Image* CJBig2_GRRDProc::decode(CJBig2_ArithDecoder* pArithDecoder,
JBig2ArithCtx* grContext) {
if (GRW == 0 || GRH == 0) {
- CJBig2_Image* pImage;
- JBIG2_ALLOC(pImage, CJBig2_Image(GRW, GRH));
- return pImage;
+ return new CJBig2_Image(GRW, GRH);
}
if (GRTEMPLATE == 0) {
if ((GRAT[0] == (int8_t)-1) && (GRAT[1] == (int8_t)-1) &&
@@ -619,10 +607,9 @@ CJBig2_Image* CJBig2_GRRDProc::decode_Template0_unopt(
JBig2ArithCtx* grContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GRREG;
FX_DWORD line1, line2, line3, line4, line5;
LTP = 0;
- JBIG2_ALLOC(GRREG, CJBig2_Image(GRW, GRH));
+ CJBig2_Image* GRREG = new CJBig2_Image(GRW, GRH);
GRREG->fill(0);
for (FX_DWORD h = 0; h < GRH; h++) {
if (TPGRON) {
@@ -734,7 +721,6 @@ CJBig2_Image* CJBig2_GRRDProc::decode_Template0_opt(
JBig2ArithCtx* grContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GRREG;
FX_DWORD line1, line1_r, line2_r, line3_r;
uint8_t *pLine, *pLineR, cVal;
intptr_t nStride, nStrideR, nOffset;
@@ -744,7 +730,7 @@ CJBig2_Image* CJBig2_GRRDProc::decode_Template0_opt(
GRW = (int32_t)CJBig2_GRRDProc::GRW;
GRH = (int32_t)CJBig2_GRRDProc::GRH;
LTP = 0;
- JBIG2_ALLOC(GRREG, CJBig2_Image(GRW, GRH));
+ CJBig2_Image* GRREG = new CJBig2_Image(GRW, GRH);
if (GRREG->m_pData == NULL) {
delete GRREG;
return NULL;
@@ -869,10 +855,9 @@ CJBig2_Image* CJBig2_GRRDProc::decode_Template1_unopt(
JBig2ArithCtx* grContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GRREG;
FX_DWORD line1, line2, line3, line4, line5;
LTP = 0;
- JBIG2_ALLOC(GRREG, CJBig2_Image(GRW, GRH));
+ CJBig2_Image* GRREG = new CJBig2_Image(GRW, GRH);
GRREG->fill(0);
for (FX_DWORD h = 0; h < GRH; h++) {
if (TPGRON) {
@@ -970,7 +955,6 @@ CJBig2_Image* CJBig2_GRRDProc::decode_Template1_opt(
JBig2ArithCtx* grContext) {
FX_BOOL LTP, SLTP, bVal;
FX_DWORD CONTEXT;
- CJBig2_Image* GRREG;
FX_DWORD line1, line1_r, line2_r, line3_r;
uint8_t *pLine, *pLineR, cVal;
intptr_t nStride, nStrideR, nOffset;
@@ -980,7 +964,7 @@ CJBig2_Image* CJBig2_GRRDProc::decode_Template1_opt(
GRW = (int32_t)CJBig2_GRRDProc::GRW;
GRH = (int32_t)CJBig2_GRRDProc::GRH;
LTP = 0;
- JBIG2_ALLOC(GRREG, CJBig2_Image(GRW, GRH));
+ CJBig2_Image* GRREG = new CJBig2_Image(GRW, GRH);
if (GRREG->m_pData == NULL) {
delete GRREG;
return NULL;
@@ -1110,14 +1094,13 @@ CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream,
int32_t RDWI, RDHI, RDXI, RDYI;
CJBig2_Image* IBOI;
FX_DWORD WOI, HOI;
- CJBig2_Image* SBREG;
FX_BOOL bFirst;
FX_DWORD nTmp;
int32_t nVal, nBits;
CJBig2_GRRDProc* pGRRD;
CJBig2_ArithDecoder* pArithDecoder;
CJBig2_HuffmanDecoder* pHuffmanDecoder = new CJBig2_HuffmanDecoder(pStream);
- JBIG2_ALLOC(SBREG, CJBig2_Image(SBW, SBH));
+ CJBig2_Image* SBREG = new CJBig2_Image(SBW, SBH);
SBREG->fill(SBDEFPIXEL);
if (pHuffmanDecoder->decodeAValue(SBHUFFDT, &STRIPT) != 0) {
goto failed;
@@ -1210,7 +1193,7 @@ CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream,
if ((int)(WOI + RDWI) < 0 || (int)(HOI + RDHI) < 0) {
goto failed;
}
- JBIG2_ALLOC(pGRRD, CJBig2_GRRDProc());
+ pGRRD = new CJBig2_GRRDProc();
pGRRD->GRW = WOI + RDWI;
pGRRD->GRH = HOI + RDHI;
pGRRD->GRTEMPLATE = SBRTEMPLATE;
@@ -1352,7 +1335,7 @@ CJBig2_Image* CJBig2_TRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
IAID = new CJBig2_ArithIaidDecoder(SBSYMCODELEN);
bRetained = FALSE;
}
- JBIG2_ALLOC(SBREG, CJBig2_Image(SBW, SBH));
+ SBREG = new CJBig2_Image(SBW, SBH);
SBREG->fill(SBDEFPIXEL);
if (IADT->decode(pArithDecoder, &STRIPT) == -1) {
goto failed;
@@ -1430,7 +1413,7 @@ CJBig2_Image* CJBig2_TRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
if ((int)(WOI + RDWI) < 0 || (int)(HOI + RDHI) < 0) {
goto failed;
}
- JBIG2_ALLOC(pGRRD, CJBig2_GRRDProc());
+ pGRRD = new CJBig2_GRRDProc();
pGRRD->GRW = WOI + RDWI;
pGRRD->GRH = HOI + RDHI;
pGRRD->GRTEMPLATE = SBRTEMPLATE;
@@ -1580,8 +1563,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
nTmp++;
}
IAID = new CJBig2_ArithIaidDecoder((uint8_t)nTmp);
- SDNEWSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(SDNUMNEWSYMS,
- sizeof(CJBig2_Image*));
+ SDNEWSYMS = FX_Alloc(CJBig2_Image*, SDNUMNEWSYMS);
FXSYS_memset(SDNEWSYMS, 0, SDNUMNEWSYMS * sizeof(CJBig2_Image*));
HCHEIGHT = 0;
NSYMSDECODED = 0;
@@ -1618,7 +1600,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
TOTWIDTH = TOTWIDTH + SYMWIDTH;
}
if (SDREFAGG == 0) {
- JBIG2_ALLOC(pGRD, CJBig2_GRDProc());
+ pGRD = new CJBig2_GRDProc();
pGRD->MMR = 0;
pGRD->GBW = SYMWIDTH;
pGRD->GBH = HCHEIGHT;
@@ -1645,7 +1627,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
}
if (REFAGGNINST > 1) {
CJBig2_TRDProc* pDecoder;
- JBIG2_ALLOC(pDecoder, CJBig2_TRDProc());
+ pDecoder = new CJBig2_TRDProc();
pDecoder->SBHUFF = SDHUFF;
pDecoder->SBREFINE = 1;
pDecoder->SBW = SYMWIDTH;
@@ -1660,8 +1642,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
}
SBSYMCODELEN = (uint8_t)nTmp;
pDecoder->SBSYMCODELEN = SBSYMCODELEN;
- SBSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- SBNUMSYMS, sizeof(CJBig2_Image*));
+ SBSYMS = FX_Alloc(CJBig2_Image*, SBNUMSYMS);
JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*));
JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS,
NSYMSDECODED * sizeof(CJBig2_Image*));
@@ -1721,7 +1702,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
ids.IAID = IAID;
BS = pDecoder->decode_Arith(pArithDecoder, grContext, &ids);
if (BS == NULL) {
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMS);
delete SBHUFFFS;
delete SBHUFFDS;
delete SBHUFFDT;
@@ -1733,7 +1714,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
delete pDecoder;
goto failed;
}
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMS);
delete SBHUFFFS;
delete SBHUFFDS;
delete SBHUFFDT;
@@ -1755,16 +1736,15 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
if (IDI >= SBNUMSYMS) {
goto failed;
}
- SBSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- SBNUMSYMS, sizeof(CJBig2_Image*));
+ SBSYMS = FX_Alloc(CJBig2_Image*, SBNUMSYMS);
JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*));
JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS,
NSYMSDECODED * sizeof(CJBig2_Image*));
if (!SBSYMS[IDI]) {
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMS);
goto failed;
}
- JBIG2_ALLOC(pGRRD, CJBig2_GRRDProc());
+ pGRRD = new CJBig2_GRRDProc();
pGRRD->GRW = SYMWIDTH;
pGRRD->GRH = HCHEIGHT;
pGRRD->GRTEMPLATE = SDRTEMPLATE;
@@ -1778,11 +1758,11 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
pGRRD->GRAT[3] = SDRAT[3];
BS = pGRRD->decode(pArithDecoder, grContext);
if (BS == NULL) {
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMS);
delete pGRRD;
goto failed;
}
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMS);
delete pGRRD;
}
}
@@ -1793,15 +1773,14 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
}
EXINDEX = 0;
CUREXFLAG = 0;
- EXFLAGS = (FX_BOOL*)m_pModule->JBig2_Malloc2(sizeof(FX_BOOL),
- (SDNUMINSYMS + SDNUMNEWSYMS));
+ EXFLAGS = FX_Alloc(FX_BOOL, SDNUMINSYMS + SDNUMNEWSYMS);
while (EXINDEX < SDNUMINSYMS + SDNUMNEWSYMS) {
if (IAEX->decode(pArithDecoder, (int*)&EXRUNLENGTH) == -1) {
- m_pModule->JBig2_Free(EXFLAGS);
+ FX_Free(EXFLAGS);
goto failed;
}
if (EXINDEX + EXRUNLENGTH > SDNUMINSYMS + SDNUMNEWSYMS) {
- m_pModule->JBig2_Free(EXFLAGS);
+ FX_Free(EXFLAGS);
goto failed;
}
if (EXRUNLENGTH != 0) {
@@ -1812,15 +1791,14 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
EXINDEX = EXINDEX + EXRUNLENGTH;
CUREXFLAG = !CUREXFLAG;
}
- JBIG2_ALLOC(pDict, CJBig2_SymbolDict());
+ pDict = new CJBig2_SymbolDict();
pDict->SDNUMEXSYMS = SDNUMEXSYMS;
- pDict->SDEXSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- sizeof(CJBig2_Image*), SDNUMEXSYMS);
+ pDict->SDEXSYMS = FX_Alloc(CJBig2_Image*, SDNUMEXSYMS);
I = J = 0;
for (I = 0; I < SDNUMINSYMS + SDNUMNEWSYMS; I++) {
if (EXFLAGS[I] && J < SDNUMEXSYMS) {
if (I < SDNUMINSYMS) {
- JBIG2_ALLOC(pDict->SDEXSYMS[J], CJBig2_Image(*SDINSYMS[I]));
+ pDict->SDEXSYMS[J] = new CJBig2_Image(*SDINSYMS[I]);
} else {
pDict->SDEXSYMS[J] = SDNEWSYMS[I - SDNUMINSYMS];
}
@@ -1832,8 +1810,8 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Arith(
if (J < SDNUMEXSYMS) {
pDict->SDNUMEXSYMS = J;
}
- m_pModule->JBig2_Free(EXFLAGS);
- m_pModule->JBig2_Free(SDNEWSYMS);
+ FX_Free(EXFLAGS);
+ FX_Free(SDNEWSYMS);
delete IADH;
delete IADW;
delete IAAI;
@@ -1856,7 +1834,7 @@ failed:
SDNEWSYMS[I] = NULL;
}
}
- m_pModule->JBig2_Free(SDNEWSYMS);
+ FX_Free(SDNEWSYMS);
delete IADH;
delete IADW;
delete IAAI;
@@ -1907,14 +1885,12 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
CJBig2_GRDProc* pGRD;
CJBig2_SymbolDict* pDict;
pHuffmanDecoder = new CJBig2_HuffmanDecoder(pStream);
- SDNEWSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(SDNUMNEWSYMS,
- sizeof(CJBig2_Image*));
+ SDNEWSYMS = FX_Alloc(CJBig2_Image*, SDNUMNEWSYMS);
FXSYS_memset(SDNEWSYMS, 0, SDNUMNEWSYMS * sizeof(CJBig2_Image*));
SDNEWSYMWIDTHS = NULL;
BHC = NULL;
if (SDREFAGG == 0) {
- SDNEWSYMWIDTHS =
- (FX_DWORD*)m_pModule->JBig2_Malloc2(SDNUMNEWSYMS, sizeof(FX_DWORD));
+ SDNEWSYMWIDTHS = FX_Alloc(FX_DWORD, SDNUMNEWSYMS);
FXSYS_memset(SDNEWSYMWIDTHS, 0, SDNUMNEWSYMS * sizeof(FX_DWORD));
}
HCHEIGHT = 0;
@@ -1959,8 +1935,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
}
BS = NULL;
if (REFAGGNINST > 1) {
- CJBig2_TRDProc* pDecoder;
- JBIG2_ALLOC(pDecoder, CJBig2_TRDProc());
+ CJBig2_TRDProc* pDecoder = new CJBig2_TRDProc();
pDecoder->SBHUFF = SDHUFF;
pDecoder->SBREFINE = 1;
pDecoder->SBW = SYMWIDTH;
@@ -1969,8 +1944,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
pDecoder->SBSTRIPS = 1;
pDecoder->SBNUMSYMS = SDNUMINSYMS + NSYMSDECODED;
SBNUMSYMS = pDecoder->SBNUMSYMS;
- SBSYMCODES = (JBig2HuffmanCode*)m_pModule->JBig2_Malloc2(
- SBNUMSYMS, sizeof(JBig2HuffmanCode));
+ SBSYMCODES = FX_Alloc(JBig2HuffmanCode, SBNUMSYMS);
nTmp = 1;
while ((FX_DWORD)(1 << nTmp) < SBNUMSYMS) {
nTmp++;
@@ -1980,8 +1954,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
SBSYMCODES[I].code = I;
}
pDecoder->SBSYMCODES = SBSYMCODES;
- SBSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- SBNUMSYMS, sizeof(CJBig2_Image*));
+ SBSYMS = FX_Alloc(CJBig2_Image*, SBNUMSYMS);
JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*));
JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS,
NSYMSDECODED * sizeof(CJBig2_Image*));
@@ -2030,8 +2003,8 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
pDecoder->SBRAT[3] = SDRAT[3];
BS = pDecoder->decode_Huffman(pStream, grContext);
if (BS == NULL) {
- m_pModule->JBig2_Free(SBSYMCODES);
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMCODES);
+ FX_Free(SBSYMS);
delete SBHUFFFS;
delete SBHUFFDS;
delete SBHUFFDT;
@@ -2043,8 +2016,8 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
delete pDecoder;
goto failed;
}
- m_pModule->JBig2_Free(SBSYMCODES);
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMCODES);
+ FX_Free(SBSYMS);
delete SBHUFFFS;
delete SBHUFFDS;
delete SBHUFFDT;
@@ -2061,8 +2034,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
nTmp++;
}
SBSYMCODELEN = (uint8_t)nTmp;
- SBSYMCODES = (JBig2HuffmanCode*)m_pModule->JBig2_Malloc2(
- SBNUMSYMS, sizeof(JBig2HuffmanCode));
+ SBSYMCODES = FX_Alloc(JBig2HuffmanCode, SBNUMSYMS);
for (I = 0; I < SBNUMSYMS; I++) {
SBSYMCODES[I].codelen = SBSYMCODELEN;
SBSYMCODES[I].code = I;
@@ -2071,7 +2043,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
nBits = 0;
for (;;) {
if (pStream->read1Bit(&nTmp) != 0) {
- m_pModule->JBig2_Free(SBSYMCODES);
+ FX_Free(SBSYMCODES);
goto failed;
}
nVal = (nVal << 1) | nTmp;
@@ -2085,7 +2057,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
break;
}
}
- m_pModule->JBig2_Free(SBSYMCODES);
+ FX_Free(SBSYMCODES);
SBHUFFRDX = new CJBig2_HuffmanTable(HuffmanTable_B15,
FX_ArraySize(HuffmanTable_B15),
HuffmanTable_HTOOB_B15);
@@ -2103,12 +2075,11 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
delete SBHUFFRSIZE;
pStream->alignByte();
nTmp = pStream->getOffset();
- SBSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- SBNUMSYMS, sizeof(CJBig2_Image*));
+ SBSYMS = FX_Alloc(CJBig2_Image*, SBNUMSYMS);
JBIG2_memcpy(SBSYMS, SDINSYMS, SDNUMINSYMS * sizeof(CJBig2_Image*));
JBIG2_memcpy(SBSYMS + SDNUMINSYMS, SDNEWSYMS,
NSYMSDECODED * sizeof(CJBig2_Image*));
- JBIG2_ALLOC(pGRRD, CJBig2_GRRDProc());
+ pGRRD = new CJBig2_GRRDProc();
pGRRD->GRW = SYMWIDTH;
pGRRD->GRH = HCHEIGHT;
pGRRD->GRTEMPLATE = SDRTEMPLATE;
@@ -2123,7 +2094,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
pArithDecoder = new CJBig2_ArithDecoder(pStream);
BS = pGRRD->decode(pArithDecoder, grContext);
if (BS == NULL) {
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMS);
delete pGRRD;
delete pArithDecoder;
goto failed;
@@ -2132,12 +2103,12 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
pStream->offset(2);
if ((FX_DWORD)nVal != (pStream->getOffset() - nTmp)) {
delete BS;
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMS);
delete pGRRD;
delete pArithDecoder;
goto failed;
}
- m_pModule->JBig2_Free(SBSYMS);
+ FX_Free(SBSYMS);
delete pGRRD;
delete pArithDecoder;
}
@@ -2156,7 +2127,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
if (BMSIZE == 0) {
stride = (TOTWIDTH + 7) >> 3;
if (pStream->getByteLeft() >= stride * HCHEIGHT) {
- JBIG2_ALLOC(BHC, CJBig2_Image(TOTWIDTH, HCHEIGHT));
+ BHC = new CJBig2_Image(TOTWIDTH, HCHEIGHT);
for (I = 0; I < HCHEIGHT; I++) {
JBIG2_memcpy(BHC->m_pData + I * BHC->m_nStride,
pStream->getPointer(), stride);
@@ -2166,7 +2137,7 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
goto failed;
}
} else {
- JBIG2_ALLOC(pGRD, CJBig2_GRDProc());
+ pGRD = new CJBig2_GRDProc();
pGRD->MMR = 1;
pGRD->GBW = TOTWIDTH;
pGRD->GBH = HCHEIGHT;
@@ -2193,17 +2164,16 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
CUREXFLAG = 0;
pTable = new CJBig2_HuffmanTable(
HuffmanTable_B1, FX_ArraySize(HuffmanTable_B1), HuffmanTable_HTOOB_B1);
- EXFLAGS = (FX_BOOL*)m_pModule->JBig2_Malloc2(sizeof(FX_BOOL),
- (SDNUMINSYMS + SDNUMNEWSYMS));
+ EXFLAGS = FX_Alloc(FX_BOOL, SDNUMINSYMS + SDNUMNEWSYMS);
while (EXINDEX < SDNUMINSYMS + SDNUMNEWSYMS) {
if (pHuffmanDecoder->decodeAValue(pTable, (int*)&EXRUNLENGTH) != 0) {
delete pTable;
- m_pModule->JBig2_Free(EXFLAGS);
+ FX_Free(EXFLAGS);
goto failed;
}
if (EXINDEX + EXRUNLENGTH > SDNUMINSYMS + SDNUMNEWSYMS) {
delete pTable;
- m_pModule->JBig2_Free(EXFLAGS);
+ FX_Free(EXFLAGS);
goto failed;
}
if (EXRUNLENGTH != 0) {
@@ -2215,15 +2185,14 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
CUREXFLAG = !CUREXFLAG;
}
delete pTable;
- JBIG2_ALLOC(pDict, CJBig2_SymbolDict());
+ pDict = new CJBig2_SymbolDict();
pDict->SDNUMEXSYMS = SDNUMEXSYMS;
- pDict->SDEXSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- sizeof(CJBig2_Image*), SDNUMEXSYMS);
+ pDict->SDEXSYMS = FX_Alloc(CJBig2_Image*, SDNUMEXSYMS);
I = J = 0;
for (I = 0; I < SDNUMINSYMS + SDNUMNEWSYMS; I++) {
if (EXFLAGS[I] && J < SDNUMEXSYMS) {
if (I < SDNUMINSYMS) {
- JBIG2_ALLOC(pDict->SDEXSYMS[J], CJBig2_Image(*SDINSYMS[I]));
+ pDict->SDEXSYMS[J] = new CJBig2_Image(*SDINSYMS[I]);
} else {
pDict->SDEXSYMS[J] = SDNEWSYMS[I - SDNUMINSYMS];
}
@@ -2235,10 +2204,10 @@ CJBig2_SymbolDict* CJBig2_SDDProc::decode_Huffman(CJBig2_BitStream* pStream,
if (J < SDNUMEXSYMS) {
pDict->SDNUMEXSYMS = J;
}
- m_pModule->JBig2_Free(EXFLAGS);
- m_pModule->JBig2_Free(SDNEWSYMS);
+ FX_Free(EXFLAGS);
+ FX_Free(SDNEWSYMS);
if (SDREFAGG == 0) {
- m_pModule->JBig2_Free(SDNEWSYMWIDTHS);
+ FX_Free(SDNEWSYMWIDTHS);
}
delete pHuffmanDecoder;
return pDict;
@@ -2246,9 +2215,9 @@ failed:
for (I = 0; I < NSYMSDECODED; I++) {
delete SDNEWSYMS[I];
}
- m_pModule->JBig2_Free(SDNEWSYMS);
+ FX_Free(SDNEWSYMS);
if (SDREFAGG == 0) {
- m_pModule->JBig2_Free(SDNEWSYMWIDTHS);
+ FX_Free(SDNEWSYMWIDTHS);
}
delete pHuffmanDecoder;
return NULL;
@@ -2258,16 +2227,13 @@ CJBig2_Image* CJBig2_HTRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
IFX_Pause* pPause) {
FX_DWORD ng, mg;
int32_t x, y;
- CJBig2_Image* HSKIP;
FX_DWORD HBPP;
FX_DWORD* GI;
- CJBig2_Image* HTREG;
- CJBig2_GSIDProc* pGID;
- JBIG2_ALLOC(HTREG, CJBig2_Image(HBW, HBH));
+ CJBig2_Image* HSKIP = nullptr;
+ CJBig2_Image* HTREG = new CJBig2_Image(HBW, HBH);
HTREG->fill(HDEFPIXEL);
- HSKIP = NULL;
if (HENABLESKIP == 1) {
- JBIG2_ALLOC(HSKIP, CJBig2_Image(HGW, HGH));
+ HSKIP = new CJBig2_Image(HGW, HGH);
for (mg = 0; mg < HGH; mg++) {
for (ng = 0; ng < HGW; ng++) {
x = (HGX + mg * HRY + ng * HRX) >> 8;
@@ -2285,7 +2251,7 @@ CJBig2_Image* CJBig2_HTRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
while ((FX_DWORD)(1 << HBPP) < HNUMPATS) {
HBPP++;
}
- JBIG2_ALLOC(pGID, CJBig2_GSIDProc());
+ CJBig2_GSIDProc* pGID = new CJBig2_GSIDProc();
pGID->GSMMR = HMMR;
pGID->GSW = HGW;
pGID->GSH = HGH;
@@ -2308,7 +2274,7 @@ CJBig2_Image* CJBig2_HTRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
HTREG->composeFrom(x, y, HPATS[pat_index], HCOMBOP);
}
}
- m_pModule->JBig2_Free(GI);
+ FX_Free(GI);
delete HSKIP;
delete pGID;
return HTREG;
@@ -2322,17 +2288,14 @@ CJBig2_Image* CJBig2_HTRDProc::decode_MMR(CJBig2_BitStream* pStream,
IFX_Pause* pPause) {
FX_DWORD ng, mg;
int32_t x, y;
- FX_DWORD HBPP;
FX_DWORD* GI;
- CJBig2_Image* HTREG;
- CJBig2_GSIDProc* pGID;
- JBIG2_ALLOC(HTREG, CJBig2_Image(HBW, HBH));
+ CJBig2_Image* HTREG = new CJBig2_Image(HBW, HBH);
HTREG->fill(HDEFPIXEL);
- HBPP = 1;
+ FX_DWORD HBPP = 1;
while ((FX_DWORD)(1 << HBPP) < HNUMPATS) {
HBPP++;
}
- JBIG2_ALLOC(pGID, CJBig2_GSIDProc());
+ CJBig2_GSIDProc* pGID = new CJBig2_GSIDProc();
pGID->GSMMR = HMMR;
pGID->GSW = HGW;
pGID->GSH = HGH;
@@ -2353,7 +2316,7 @@ CJBig2_Image* CJBig2_HTRDProc::decode_MMR(CJBig2_BitStream* pStream,
HTREG->composeFrom(x, y, HPATS[pat_index], HCOMBOP);
}
}
- m_pModule->JBig2_Free(GI);
+ FX_Free(GI);
delete pGID;
return HTREG;
failed:
@@ -2367,14 +2330,11 @@ CJBig2_PatternDict* CJBig2_PDDProc::decode_Arith(
IFX_Pause* pPause) {
FX_DWORD GRAY;
CJBig2_Image* BHDC = NULL;
- CJBig2_PatternDict* pDict;
- CJBig2_GRDProc* pGRD;
- pDict = new CJBig2_PatternDict();
+ CJBig2_PatternDict* pDict = new CJBig2_PatternDict();
pDict->NUMPATS = GRAYMAX + 1;
- pDict->HDPATS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- sizeof(CJBig2_Image*), pDict->NUMPATS);
+ pDict->HDPATS = FX_Alloc(CJBig2_Image*, pDict->NUMPATS);
JBIG2_memset(pDict->HDPATS, 0, sizeof(CJBig2_Image*) * pDict->NUMPATS);
- JBIG2_ALLOC(pGRD, CJBig2_GRDProc());
+ CJBig2_GRDProc* pGRD = new CJBig2_GRDProc();
pGRD->MMR = HDMMR;
pGRD->GBW = (GRAYMAX + 1) * HDPW;
pGRD->GBH = HDPH;
@@ -2417,13 +2377,11 @@ CJBig2_PatternDict* CJBig2_PDDProc::decode_MMR(CJBig2_BitStream* pStream,
IFX_Pause* pPause) {
FX_DWORD GRAY;
CJBig2_Image* BHDC = NULL;
- CJBig2_GRDProc* pGRD;
CJBig2_PatternDict* pDict = new CJBig2_PatternDict();
pDict->NUMPATS = GRAYMAX + 1;
- pDict->HDPATS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- sizeof(CJBig2_Image*), pDict->NUMPATS);
+ pDict->HDPATS = FX_Alloc(CJBig2_Image*, pDict->NUMPATS);
JBIG2_memset(pDict->HDPATS, 0, sizeof(CJBig2_Image*) * pDict->NUMPATS);
- JBIG2_ALLOC(pGRD, CJBig2_GRDProc());
+ CJBig2_GRDProc* pGRD = new CJBig2_GRDProc();
pGRD->MMR = HDMMR;
pGRD->GBW = (GRAYMAX + 1) * HDPW;
pGRD->GBH = HDPH;
@@ -2454,20 +2412,18 @@ FX_DWORD* CJBig2_GSIDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
int32_t J, K;
FX_DWORD x, y;
FX_DWORD* GSVALS;
- CJBig2_GRDProc* pGRD;
- GSPLANES =
- (CJBig2_Image**)m_pModule->JBig2_Malloc2(sizeof(CJBig2_Image*), GSBPP);
+ GSPLANES = FX_Alloc(CJBig2_Image*, GSBPP);
if (!GSPLANES) {
return NULL;
}
- GSVALS = (FX_DWORD*)m_pModule->JBig2_Malloc3(sizeof(FX_DWORD), GSW, GSH);
+ GSVALS = FX_Alloc2D(FX_DWORD, GSW, GSH);
if (!GSVALS) {
- m_pModule->JBig2_Free(GSPLANES);
+ FX_Free(GSPLANES);
return NULL;
}
JBIG2_memset(GSPLANES, 0, sizeof(CJBig2_Image*) * GSBPP);
JBIG2_memset(GSVALS, 0, sizeof(FX_DWORD) * GSW * GSH);
- JBIG2_ALLOC(pGRD, CJBig2_GRDProc());
+ CJBig2_GRDProc* pGRD = new CJBig2_GRDProc();
pGRD->MMR = GSMMR;
pGRD->GBW = GSW;
pGRD->GBH = GSH;
@@ -2523,13 +2479,13 @@ FX_DWORD* CJBig2_GSIDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
for (J = 0; J < GSBPP; J++) {
delete GSPLANES[J];
}
- m_pModule->JBig2_Free(GSPLANES);
+ FX_Free(GSPLANES);
delete pGRD;
return GSVALS;
failed:
- m_pModule->JBig2_Free(GSPLANES);
+ FX_Free(GSPLANES);
delete pGRD;
- m_pModule->JBig2_Free(GSVALS);
+ FX_Free(GSVALS);
return NULL;
}
FX_DWORD* CJBig2_GSIDProc::decode_MMR(CJBig2_BitStream* pStream,
@@ -2538,22 +2494,18 @@ FX_DWORD* CJBig2_GSIDProc::decode_MMR(CJBig2_BitStream* pStream,
int32_t J, K;
FX_DWORD x, y;
FX_DWORD* GSVALS;
- CJBig2_GRDProc* pGRD;
- GSPLANES =
- (CJBig2_Image**)m_pModule->JBig2_Malloc2(sizeof(CJBig2_Image*), GSBPP);
+ GSPLANES = FX_Alloc(CJBig2_Image*, GSBPP);
if (!GSPLANES) {
return NULL;
}
- GSVALS = (FX_DWORD*)m_pModule->JBig2_Malloc3(sizeof(FX_DWORD), GSW, GSH);
+ GSVALS = FX_Alloc2D(FX_DWORD, GSW, GSH);
if (!GSVALS) {
- if (GSPLANES) {
- m_pModule->JBig2_Free(GSPLANES);
- }
+ FX_Free(GSPLANES);
return NULL;
}
JBIG2_memset(GSPLANES, 0, sizeof(CJBig2_Image*) * GSBPP);
JBIG2_memset(GSVALS, 0, sizeof(FX_DWORD) * GSW * GSH);
- JBIG2_ALLOC(pGRD, CJBig2_GRDProc());
+ CJBig2_GRDProc* pGRD = new CJBig2_GRDProc();
pGRD->MMR = GSMMR;
pGRD->GBW = GSW;
pGRD->GBH = GSH;
@@ -2593,13 +2545,13 @@ FX_DWORD* CJBig2_GSIDProc::decode_MMR(CJBig2_BitStream* pStream,
for (J = 0; J < GSBPP; J++) {
delete GSPLANES[J];
}
- m_pModule->JBig2_Free(GSPLANES);
+ FX_Free(GSPLANES);
delete pGRD;
return GSVALS;
failed:
- m_pModule->JBig2_Free(GSPLANES);
+ FX_Free(GSPLANES);
delete pGRD;
- m_pModule->JBig2_Free(GSVALS);
+ FX_Free(GSVALS);
return NULL;
}
FXCODEC_STATUS CJBig2_GRDProc::Start_decode_Arith(
@@ -2613,9 +2565,8 @@ FXCODEC_STATUS CJBig2_GRDProc::Start_decode_Arith(
}
m_ProssiveStatus = FXCODEC_STATUS_DECODE_READY;
m_pPause = pPause;
- if (*pImage == NULL) {
- JBIG2_ALLOC((*pImage), CJBig2_Image(GBW, GBH));
- }
+ if (!*pImage)
+ *pImage = new CJBig2_Image(GBW, GBH);
if ((*pImage)->m_pData == NULL) {
delete *pImage;
*pImage = NULL;
@@ -2683,7 +2634,7 @@ FXCODEC_STATUS CJBig2_GRDProc::Start_decode_MMR(CJBig2_Image** pImage,
CJBig2_BitStream* pStream,
IFX_Pause* pPause) {
int bitpos, i;
- JBIG2_ALLOC((*pImage), CJBig2_Image(GBW, GBH));
+ *pImage = new CJBig2_Image(GBW, GBH);
if ((*pImage)->m_pData == NULL) {
delete (*pImage);
(*pImage) = NULL;
@@ -2691,7 +2642,7 @@ FXCODEC_STATUS CJBig2_GRDProc::Start_decode_MMR(CJBig2_Image** pImage,
return m_ProssiveStatus;
}
bitpos = (int)pStream->getBitPos();
- _FaxG4Decode(m_pModule, pStream->getBuf(), pStream->getLength(), &bitpos,
+ _FaxG4Decode(pStream->getBuf(), pStream->getLength(), &bitpos,
(*pImage)->m_pData, GBW, GBH, (*pImage)->m_nStride);
pStream->setBitPos(bitpos);
for (i = 0; (FX_DWORD)i < (*pImage)->m_nStride * GBH; i++) {
diff --git a/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.h b/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.h
index 36839100fa..24ac467afa 100644
--- a/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.h
+++ b/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.h
@@ -25,7 +25,7 @@ enum JBig2Corner {
JBIG2_CORNER_TOPRIGHT = 3
};
-class CJBig2_GRDProc : public CJBig2_Object {
+class CJBig2_GRDProc {
public:
CJBig2_GRDProc() {
m_loopIndex = 0;
@@ -135,7 +135,7 @@ class CJBig2_GRDProc : public CJBig2_Object {
FX_RECT m_ReplaceRect;
};
-class CJBig2_GRRDProc : public CJBig2_Object {
+class CJBig2_GRRDProc {
public:
CJBig2_Image* decode(CJBig2_ArithDecoder* pArithDecoder,
JBig2ArithCtx* grContext);
@@ -168,7 +168,7 @@ typedef struct {
CJBig2_ArithIaidDecoder* IAID;
} JBig2IntDecoderState;
-class CJBig2_TRDProc : public CJBig2_Object {
+class CJBig2_TRDProc {
public:
CJBig2_Image* decode_Huffman(CJBig2_BitStream* pStream,
JBig2ArithCtx* grContext);
@@ -202,7 +202,7 @@ class CJBig2_TRDProc : public CJBig2_Object {
FX_BOOL SBRTEMPLATE;
int8_t SBRAT[4];
};
-class CJBig2_SDDProc : public CJBig2_Object {
+class CJBig2_SDDProc {
public:
CJBig2_SymbolDict* decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
JBig2ArithCtx* gbContext,
@@ -226,7 +226,7 @@ class CJBig2_SDDProc : public CJBig2_Object {
FX_BOOL SDRTEMPLATE;
int8_t SDRAT[4];
};
-class CJBig2_HTRDProc : public CJBig2_Object {
+class CJBig2_HTRDProc {
public:
CJBig2_Image* decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
JBig2ArithCtx* gbContext,
@@ -248,7 +248,7 @@ class CJBig2_HTRDProc : public CJBig2_Object {
FX_WORD HRX, HRY;
uint8_t HPW, HPH;
};
-class CJBig2_PDDProc : public CJBig2_Object {
+class CJBig2_PDDProc {
public:
CJBig2_PatternDict* decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
JBig2ArithCtx* gbContext,
@@ -262,7 +262,7 @@ class CJBig2_PDDProc : public CJBig2_Object {
FX_DWORD GRAYMAX;
uint8_t HDTEMPLATE;
};
-class CJBig2_GSIDProc : public CJBig2_Object {
+class CJBig2_GSIDProc {
public:
FX_DWORD* decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
JBig2ArithCtx* gbContext,
diff --git a/core/src/fxcodec/jbig2/JBig2_HuffmanTable.h b/core/src/fxcodec/jbig2/JBig2_HuffmanTable.h
index b954b4d30d..7c843cf91b 100644
--- a/core/src/fxcodec/jbig2/JBig2_HuffmanTable.h
+++ b/core/src/fxcodec/jbig2/JBig2_HuffmanTable.h
@@ -6,9 +6,10 @@
#ifndef _JBIG2_HUFFMAN_TABLE_H_
#define _JBIG2_HUFFMAN_TABLE_H_
-#include "JBig2_Module.h"
+
#include "JBig2_HuffmanTable_Standard.h"
#include "JBig2_BitStream.h"
+
class CJBig2_HuffmanTable {
public:
CJBig2_HuffmanTable(const JBig2TableLine* pTable, int nLines, FX_BOOL bHTOOB);
diff --git a/core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h b/core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h
index aa29258f07..28d8ae3564 100644
--- a/core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h
+++ b/core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h
@@ -6,11 +6,15 @@
#ifndef _JBIG2_HUFFMAN_TABLE_STANDARD_H_
#define _JBIG2_HUFFMAN_TABLE_STANDARD_H_
-typedef struct {
+
+#include "../../../../core/include/fxcrt/fx_system.h"
+
+struct JBig2TableLine {
int PREFLEN;
int RANDELEN;
int RANGELOW;
-} JBig2TableLine;
+};
+
const FX_BOOL HuffmanTable_HTOOB_B1 = FALSE;
const JBig2TableLine HuffmanTable_B1[] = {{1, 4, 0},
{2, 8, 16},
diff --git a/core/src/fxcodec/jbig2/JBig2_Image.cpp b/core/src/fxcodec/jbig2/JBig2_Image.cpp
index f1adfc6152..4cb467427c 100644
--- a/core/src/fxcodec/jbig2/JBig2_Image.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_Image.cpp
@@ -20,7 +20,7 @@ CJBig2_Image::CJBig2_Image(int32_t w, int32_t h) {
}
m_nStride = ((w + 31) >> 5) << 2;
if (m_nStride * m_nHeight > 0 && 104857600 / (int)m_nStride > m_nHeight) {
- m_pData = (uint8_t*)m_pModule->JBig2_Malloc2(m_nStride, m_nHeight);
+ m_pData = FX_Alloc2D(uint8_t, m_nStride, m_nHeight);
} else {
m_pData = NULL;
}
@@ -37,12 +37,11 @@ CJBig2_Image::CJBig2_Image(int32_t w,
m_bNeedFree = FALSE;
}
CJBig2_Image::CJBig2_Image(CJBig2_Image& im) {
- m_pModule = im.m_pModule;
m_nWidth = im.m_nWidth;
m_nHeight = im.m_nHeight;
m_nStride = im.m_nStride;
if (im.m_pData) {
- m_pData = (uint8_t*)m_pModule->JBig2_Malloc2(m_nStride, m_nHeight);
+ m_pData = FX_Alloc2D(uint8_t, m_nStride, m_nHeight);
JBIG2_memcpy(m_pData, im.m_pData, m_nStride * m_nHeight);
} else {
m_pData = NULL;
@@ -50,8 +49,8 @@ CJBig2_Image::CJBig2_Image(CJBig2_Image& im) {
m_bNeedFree = TRUE;
}
CJBig2_Image::~CJBig2_Image() {
- if (m_bNeedFree && m_pData) {
- m_pModule->JBig2_Free(m_pData);
+ if (m_bNeedFree) {
+ FX_Free(m_pData);
}
}
FX_BOOL CJBig2_Image::getPixel(int32_t x, int32_t y) {
@@ -155,7 +154,6 @@ CJBig2_Image* CJBig2_Image::subImage(int32_t x,
int32_t y,
int32_t w,
int32_t h) {
- CJBig2_Image* pImage;
int32_t m, n, j;
uint8_t *pLineSrc, *pLineDst;
FX_DWORD wTmp;
@@ -163,7 +161,7 @@ CJBig2_Image* CJBig2_Image::subImage(int32_t x,
if (w == 0 || h == 0) {
return NULL;
}
- JBIG2_ALLOC(pImage, CJBig2_Image(w, h));
+ CJBig2_Image* pImage = new CJBig2_Image(w, h);
if (!m_pData) {
pImage->fill(0);
return pImage;
@@ -224,8 +222,8 @@ void CJBig2_Image::expand(int32_t h, FX_BOOL v) {
return;
}
// The guaranteed reallocated memory is to be < 4GB (unsigned int).
- m_pData =
- (uint8_t*)m_pModule->JBig2_Realloc(m_pData, safeMemSize.ValueOrDie());
+ m_pData = FX_Realloc(uint8_t, m_pData, safeMemSize.ValueOrDie());
+
// The result of dwHeight * dwStride doesn't overflow after the
// checking of safeMemSize.
// The same as the result of (dwH - dwHeight) * dwStride) because
diff --git a/core/src/fxcodec/jbig2/JBig2_Image.h b/core/src/fxcodec/jbig2/JBig2_Image.h
index c5d27f36b5..e77da9059c 100644
--- a/core/src/fxcodec/jbig2/JBig2_Image.h
+++ b/core/src/fxcodec/jbig2/JBig2_Image.h
@@ -6,17 +6,19 @@
#ifndef _JBIG2_IMAGE_H_
#define _JBIG2_IMAGE_H_
+
#include "JBig2_Define.h"
-#include "JBig2_Module.h"
-typedef enum {
+
+enum JBig2ComposeOp {
JBIG2_COMPOSE_OR = 0,
JBIG2_COMPOSE_AND = 1,
JBIG2_COMPOSE_XOR = 2,
JBIG2_COMPOSE_XNOR = 3,
JBIG2_COMPOSE_REPLACE = 4
-} JBig2ComposeOp;
+};
+
struct FX_RECT;
-class CJBig2_Image : public CJBig2_Object {
+class CJBig2_Image {
public:
CJBig2_Image(int32_t w, int32_t h);
diff --git a/core/src/fxcodec/jbig2/JBig2_Module.h b/core/src/fxcodec/jbig2/JBig2_Module.h
deleted file mode 100644
index bb06c8a0b3..0000000000
--- a/core/src/fxcodec/jbig2/JBig2_Module.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2014 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.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef _JBIG2_MODULE_H_
-#define _JBIG2_MODULE_H_
-#include "JBig2_Define.h"
-class CJBig2_Module {
- public:
- virtual ~CJBig2_Module() {}
-
- virtual void* JBig2_Malloc(FX_DWORD dwSize) = 0;
-
- virtual void* JBig2_Malloc2(FX_DWORD num, FX_DWORD dwSize) = 0;
-
- virtual void* JBig2_Malloc3(FX_DWORD num,
- FX_DWORD dwSize,
- FX_DWORD dwSize2) = 0;
-
- virtual void* JBig2_Realloc(void* pMem, FX_DWORD dwSize) = 0;
-
- virtual void JBig2_Free(void* pMem) = 0;
-};
-#endif
diff --git a/core/src/fxcodec/jbig2/JBig2_Object.cpp b/core/src/fxcodec/jbig2/JBig2_Object.cpp
deleted file mode 100644
index f1e894321c..0000000000
--- a/core/src/fxcodec/jbig2/JBig2_Object.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2014 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.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "JBig2_Object.h"
-#include "JBig2_Module.h"
-void* CJBig2_Object::operator new(size_t size,
- CJBig2_Module* pModule,
- const FX_CHAR* filename,
- int line) {
- CJBig2_Object* p;
- p = (CJBig2_Object*)pModule->JBig2_Malloc((FX_DWORD)size);
- p->m_pModule = pModule;
- return p;
-}
-void CJBig2_Object::operator delete(void* p,
- CJBig2_Module* pModule,
- const FX_CHAR* filename,
- int line) {
- pModule->JBig2_Free(p);
-}
-void* CJBig2_Object::operator new(size_t size, CJBig2_Module* pModule) {
- CJBig2_Object* p;
- p = (CJBig2_Object*)pModule->JBig2_Malloc((FX_DWORD)size);
- p->m_pModule = pModule;
- return p;
-}
-void CJBig2_Object::operator delete(void* p) {
- ((CJBig2_Object*)p)->m_pModule->JBig2_Free(p);
-}
-void CJBig2_Object::operator delete(void* p, CJBig2_Module* pModule) {
- pModule->JBig2_Free(p);
-}
-void* CJBig2_Object::operator new[](size_t size,
- CJBig2_Module* pModule,
- size_t unit_size,
- const FX_CHAR* filename,
- int line) {
- void* p;
- uint8_t *pCur, *pEnd;
- p = (uint8_t*)pModule->JBig2_Malloc((FX_DWORD)size);
- pCur = (uint8_t*)p;
- pEnd = pCur + size;
- for (; pCur < pEnd; pCur += unit_size) {
- ((CJBig2_Object*)pCur)->m_pModule = pModule;
- }
- return p;
-}
-void CJBig2_Object::operator delete[](void* p,
- CJBig2_Module* pModule,
- size_t unit_size,
- const FX_CHAR* filename,
- int line) {
- pModule->JBig2_Free(p);
-}
-void* CJBig2_Object::operator new[](size_t size,
- CJBig2_Module* pModule,
- size_t unit_size) {
- void* p;
- uint8_t *pCur, *pEnd;
- p = (uint8_t*)pModule->JBig2_Malloc((FX_DWORD)size);
- pCur = (uint8_t*)p;
- pEnd = pCur + size;
- for (; pCur < pEnd; pCur += unit_size) {
- ((CJBig2_Object*)pCur)->m_pModule = pModule;
- }
- return p;
-}
-void CJBig2_Object::operator delete[](void* p) {
- ((CJBig2_Object*)p)->m_pModule->JBig2_Free(p);
-}
-void CJBig2_Object::operator delete[](void* p,
- CJBig2_Module* pModule,
- size_t unit_size) {
- pModule->JBig2_Free(p);
-}
diff --git a/core/src/fxcodec/jbig2/JBig2_Object.h b/core/src/fxcodec/jbig2/JBig2_Object.h
deleted file mode 100644
index bab1a16231..0000000000
--- a/core/src/fxcodec/jbig2/JBig2_Object.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2014 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.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef _JBIG2_OBJECT_H_
-#define _JBIG2_OBJECT_H_
-#include "JBig2_Define.h"
-class CJBig2_Module;
-#define _JBIG2_NO_EXPECTION_
-class CJBig2_Object {
- public:
- void* operator new(size_t size,
- CJBig2_Module* pModule,
- const FX_CHAR* filename,
- int line);
-
- void operator delete(void* p,
- CJBig2_Module* pModule,
- const FX_CHAR* filename,
- int line);
-
- void* operator new(size_t size, CJBig2_Module* pModule);
-
- void operator delete(void* p);
-
- void operator delete(void* p, CJBig2_Module* pModule);
-
- void* operator new[](size_t size,
- CJBig2_Module* pModule,
- size_t unit_size,
- const FX_CHAR* filename,
- int line);
-
- void operator delete[](void* p,
- CJBig2_Module* pModule,
- size_t unit_size,
- const FX_CHAR* filename,
- int line);
-
- void* operator new[](size_t size, CJBig2_Module* pModule, size_t unit_size);
-
- void operator delete[](void* p);
-
- void operator delete[](void* p, CJBig2_Module* pModule, size_t unit_size);
-
- public:
- CJBig2_Module* m_pModule;
-};
-#define JBIG2_NEW new (m_pModule)
-#define JBIG2_ALLOC(p, a) \
- p = JBIG2_NEW a; \
- p->m_pModule = m_pModule;
-#endif
diff --git a/core/src/fxcodec/jbig2/JBig2_Segment.h b/core/src/fxcodec/jbig2/JBig2_Segment.h
index 5c1c585939..b80a5d282f 100644
--- a/core/src/fxcodec/jbig2/JBig2_Segment.h
+++ b/core/src/fxcodec/jbig2/JBig2_Segment.h
@@ -6,11 +6,12 @@
#ifndef _JBIG2_SEGMENT_H_
#define _JBIG2_SEGMENT_H_
+
#include "JBig2_Define.h"
-#include "JBig2_SymbolDict.h"
-#include "JBig2_PatternDict.h"
-#include "JBig2_Module.h"
#include "JBig2_HuffmanTable.h"
+#include "JBig2_PatternDict.h"
+#include "JBig2_SymbolDict.h"
+
#define JBIG2_GET_INT32(buf) \
(((buf)[0] << 24) | ((buf)[1] << 16) | ((buf)[2] << 8) | (buf)[3])
#define JBIG2_GET_INT16(buf) (((buf)[0] << 8) | (buf)[1])
@@ -49,7 +50,7 @@ class CJBig2_Segment {
FX_DWORD m_dwData_length;
FX_DWORD m_dwHeader_Length;
- uint8_t* m_pData;
+ const uint8_t* m_pData;
JBig2_SegmentState m_State;
JBig2_ResultType m_nResultType;
union {
diff --git a/core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp b/core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp
index 2287b91840..ef02df1072 100644
--- a/core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp
@@ -5,6 +5,9 @@
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
#include "JBig2_SymbolDict.h"
+
+#include "../../../include/fxcrt/fx_memory.h"
+
CJBig2_SymbolDict::CJBig2_SymbolDict() {
SDNUMEXSYMS = 0;
SDEXSYMS = NULL;
@@ -13,18 +16,16 @@ CJBig2_SymbolDict::CJBig2_SymbolDict() {
}
CJBig2_SymbolDict* CJBig2_SymbolDict::DeepCopy() {
- CJBig2_SymbolDict* dst = NULL;
CJBig2_SymbolDict* src = this;
if (src->m_bContextRetained || src->m_gbContext || src->m_grContext) {
return NULL;
}
- JBIG2_ALLOC(dst, CJBig2_SymbolDict());
+ CJBig2_SymbolDict* dst = new CJBig2_SymbolDict;
dst->SDNUMEXSYMS = src->SDNUMEXSYMS;
- dst->SDEXSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
- sizeof(CJBig2_Image*), src->SDNUMEXSYMS);
+ dst->SDEXSYMS = FX_Alloc(CJBig2_Image*, src->SDNUMEXSYMS);
for (FX_DWORD i = 0; i < src->SDNUMEXSYMS; i++) {
if (src->SDEXSYMS[i]) {
- JBIG2_ALLOC(dst->SDEXSYMS[i], CJBig2_Image(*(src->SDEXSYMS[i])));
+ dst->SDEXSYMS[i] = new CJBig2_Image(*(src->SDEXSYMS[i]));
} else {
dst->SDEXSYMS[i] = NULL;
}
@@ -37,14 +38,10 @@ CJBig2_SymbolDict::~CJBig2_SymbolDict() {
for (FX_DWORD i = 0; i < SDNUMEXSYMS; i++) {
delete SDEXSYMS[i];
}
- m_pModule->JBig2_Free(SDEXSYMS);
+ FX_Free(SDEXSYMS);
}
if (m_bContextRetained) {
- if (m_gbContext) {
- m_pModule->JBig2_Free(m_gbContext);
- }
- if (m_grContext) {
- m_pModule->JBig2_Free(m_grContext);
- }
+ FX_Free(m_gbContext);
+ FX_Free(m_grContext);
}
}
diff --git a/core/src/fxcodec/jbig2/JBig2_SymbolDict.h b/core/src/fxcodec/jbig2/JBig2_SymbolDict.h
index 1a074415bf..19d0f606a5 100644
--- a/core/src/fxcodec/jbig2/JBig2_SymbolDict.h
+++ b/core/src/fxcodec/jbig2/JBig2_SymbolDict.h
@@ -6,10 +6,12 @@
#ifndef _JBIG2_SYMBOL_DICT_H_
#define _JBIG2_SYMBOL_DICT_H_
-#include "JBig2_Define.h"
+
#include "JBig2_ArithDecoder.h"
+#include "JBig2_Define.h"
#include "JBig2_Image.h"
-class CJBig2_SymbolDict : public CJBig2_Object {
+
+class CJBig2_SymbolDict {
public:
CJBig2_SymbolDict();
CJBig2_SymbolDict* DeepCopy();
@@ -19,6 +21,8 @@ class CJBig2_SymbolDict : public CJBig2_Object {
FX_DWORD SDNUMEXSYMS;
CJBig2_Image** SDEXSYMS;
FX_BOOL m_bContextRetained;
- JBig2ArithCtx *m_gbContext, *m_grContext;
+ JBig2ArithCtx* m_gbContext;
+ JBig2ArithCtx* m_grContext;
};
+
#endif