| Index: core/fpdfapi/fpdf_parser/cpdf_document.cpp
|
| diff --git a/core/fpdfapi/fpdf_parser/cpdf_document.cpp b/core/fpdfapi/fpdf_parser/cpdf_document.cpp
|
| index 6b58aea59f1c96a84af8d390b4a8e96de2f1928c..a3d93844bc7679870de3829df1541ebb3d1dc240 100644
|
| --- a/core/fpdfapi/fpdf_parser/cpdf_document.cpp
|
| +++ b/core/fpdfapi/fpdf_parser/cpdf_document.cpp
|
| @@ -671,21 +671,21 @@ CPDF_Image* CPDF_Document::LoadImageF(CPDF_Object* pObj) {
|
|
|
| void CPDF_Document::CreateNewDoc() {
|
| ASSERT(!m_pRootDict && !m_pInfoDict);
|
| - m_pRootDict = new CPDF_Dictionary;
|
| + m_pRootDict = new CPDF_Dictionary(this);
|
| m_pRootDict->SetNameFor("Type", "Catalog");
|
| int objnum = AddIndirectObject(m_pRootDict);
|
| - CPDF_Dictionary* pPages = new CPDF_Dictionary;
|
| + CPDF_Dictionary* pPages = new CPDF_Dictionary(this);
|
| pPages->SetNameFor("Type", "Pages");
|
| pPages->SetNumberFor("Count", 0);
|
| pPages->SetFor("Kids", new CPDF_Array);
|
| objnum = AddIndirectObject(pPages);
|
| m_pRootDict->SetReferenceFor("Pages", this, objnum);
|
| - m_pInfoDict = new CPDF_Dictionary;
|
| + m_pInfoDict = new CPDF_Dictionary(this);
|
| AddIndirectObject(m_pInfoDict);
|
| }
|
|
|
| CPDF_Dictionary* CPDF_Document::CreateNewPage(int iPage) {
|
| - CPDF_Dictionary* pDict = new CPDF_Dictionary;
|
| + CPDF_Dictionary* pDict = new CPDF_Dictionary(this);
|
| pDict->SetNameFor("Type", "Page");
|
| uint32_t dwObjNum = AddIndirectObject(pDict);
|
| if (InsertNewPage(this, iPage, pDict, m_PageList) < 0) {
|
| @@ -728,7 +728,7 @@ size_t CPDF_Document::CalculateEncodingDict(int charset,
|
| }
|
| if (i == FX_ArraySize(g_FX_CharsetUnicodes))
|
| return i;
|
| - CPDF_Dictionary* pEncodingDict = new CPDF_Dictionary;
|
| + CPDF_Dictionary* pEncodingDict = new CPDF_Dictionary(this);
|
| pEncodingDict->SetNameFor("BaseEncoding", "WinAnsiEncoding");
|
| CPDF_Array* pArray = new CPDF_Array;
|
| pArray->AddInteger(128);
|
| @@ -757,7 +757,7 @@ CPDF_Font* CPDF_Document::AddFont(CFX_Font* pFont, int charset, FX_BOOL bVert) {
|
| CalculateFlags(pFont->IsBold(), pFont->IsItalic(), pFont->IsFixedWidth(),
|
| false, false, charset == FXFONT_SYMBOL_CHARSET);
|
|
|
| - CPDF_Dictionary* pBaseDict = new CPDF_Dictionary;
|
| + CPDF_Dictionary* pBaseDict = new CPDF_Dictionary(this);
|
| pBaseDict->SetNameFor("Type", "Font");
|
| std::unique_ptr<CFX_UnicodeEncoding> pEncoding(
|
| new CFX_UnicodeEncoding(pFont));
|
| @@ -792,7 +792,7 @@ CPDF_Font* CPDF_Document::AddFont(CFX_Font* pFont, int charset, FX_BOOL bVert) {
|
| pWidths);
|
| } else {
|
| flags |= PDFFONT_NONSYMBOLIC;
|
| - pFontDict = new CPDF_Dictionary;
|
| + pFontDict = new CPDF_Dictionary(this);
|
| CFX_ByteString cmap;
|
| CFX_ByteString ordering;
|
| int supplement = 0;
|
| @@ -842,7 +842,7 @@ CPDF_Font* CPDF_Document::AddFont(CFX_Font* pFont, int charset, FX_BOOL bVert) {
|
| pFontDict->SetNameFor("Type", "Font");
|
| pFontDict->SetNameFor("Subtype", "CIDFontType2");
|
| pFontDict->SetNameFor("BaseFont", basefont);
|
| - CPDF_Dictionary* pCIDSysInfo = new CPDF_Dictionary;
|
| + CPDF_Dictionary* pCIDSysInfo = new CPDF_Dictionary(this);
|
| pCIDSysInfo->SetStringFor("Registry", "Adobe");
|
| pCIDSysInfo->SetStringFor("Ordering", ordering);
|
| pCIDSysInfo->SetIntegerFor("Supplement", supplement);
|
| @@ -853,7 +853,7 @@ CPDF_Font* CPDF_Document::AddFont(CFX_Font* pFont, int charset, FX_BOOL bVert) {
|
| pArray->AddReference(this, pFontDict);
|
| }
|
| AddIndirectObject(pBaseDict);
|
| - CPDF_Dictionary* pFontDesc = new CPDF_Dictionary;
|
| + CPDF_Dictionary* pFontDesc = new CPDF_Dictionary(this);
|
| pFontDesc->SetNameFor("Type", "FontDescriptor");
|
| pFontDesc->SetNameFor("FontName", basefont);
|
| pFontDesc->SetIntegerFor("Flags", flags);
|
| @@ -949,7 +949,7 @@ CPDF_Font* CPDF_Document::AddWindowsFont(LOGFONTA* pLogFont,
|
| ptm->otmrcFontBox.right, ptm->otmrcFontBox.top};
|
| FX_Free(tm_buf);
|
| basefont.Replace(" ", "");
|
| - CPDF_Dictionary* pBaseDict = new CPDF_Dictionary;
|
| + CPDF_Dictionary* pBaseDict = new CPDF_Dictionary(this);
|
| pBaseDict->SetNameFor("Type", "Font");
|
| CPDF_Dictionary* pFontDict = pBaseDict;
|
| if (!bCJK) {
|
| @@ -968,7 +968,7 @@ CPDF_Font* CPDF_Document::AddWindowsFont(LOGFONTA* pLogFont,
|
| ProcessNonbCJK(pBaseDict, pLogFont->lfWeight > FW_MEDIUM,
|
| pLogFont->lfItalic != 0, basefont, pWidths);
|
| } else {
|
| - pFontDict = new CPDF_Dictionary;
|
| + pFontDict = new CPDF_Dictionary(this);
|
| CFX_ByteString cmap;
|
| CFX_ByteString ordering;
|
| int supplement = 0;
|
| @@ -1017,7 +1017,7 @@ CPDF_Font* CPDF_Document::AddWindowsFont(LOGFONTA* pLogFont,
|
| pFontDict->SetNameFor("Type", "Font");
|
| pFontDict->SetNameFor("Subtype", "CIDFontType2");
|
| pFontDict->SetNameFor("BaseFont", basefont);
|
| - CPDF_Dictionary* pCIDSysInfo = new CPDF_Dictionary;
|
| + CPDF_Dictionary* pCIDSysInfo = new CPDF_Dictionary(this);
|
| pCIDSysInfo->SetStringFor("Registry", "Adobe");
|
| pCIDSysInfo->SetStringFor("Ordering", ordering);
|
| pCIDSysInfo->SetIntegerFor("Supplement", supplement);
|
| @@ -1028,7 +1028,7 @@ CPDF_Font* CPDF_Document::AddWindowsFont(LOGFONTA* pLogFont,
|
| pArray->AddReference(this, pFontDict);
|
| }
|
| AddIndirectObject(pBaseDict);
|
| - CPDF_Dictionary* pFontDesc = new CPDF_Dictionary;
|
| + CPDF_Dictionary* pFontDesc = new CPDF_Dictionary(this);
|
| pFontDesc->SetNameFor("Type", "FontDescriptor");
|
| pFontDesc->SetNameFor("FontName", basefont);
|
| pFontDesc->SetIntegerFor("Flags", flags);
|
|
|