| Index: fpdfsdk/formfiller/cba_fontmap.cpp
|
| diff --git a/fpdfsdk/formfiller/cba_fontmap.cpp b/fpdfsdk/formfiller/cba_fontmap.cpp
|
| index fd9304befc8e478237c6c71d9742f6d91389447e..83e45791e20f7f7a5a4eaa317be4a840829970f3 100644
|
| --- a/fpdfsdk/formfiller/cba_fontmap.cpp
|
| +++ b/fpdfsdk/formfiller/cba_fontmap.cpp
|
| @@ -9,6 +9,7 @@
|
| #include "core/fpdfapi/font/cpdf_font.h"
|
| #include "core/fpdfapi/page/cpdf_page.h"
|
| #include "core/fpdfapi/parser/cpdf_document.h"
|
| +#include "core/fpdfapi/parser/cpdf_reference.h"
|
| #include "core/fpdfapi/parser/cpdf_simple_parser.h"
|
| #include "core/fpdfapi/parser/cpdf_stream.h"
|
| #include "core/fpdfapi/parser/fpdf_parser_decode.h"
|
| @@ -119,11 +120,10 @@ CPDF_Font* CBA_FontMap::FindResFontSameCharset(CPDF_Dictionary* pResDict,
|
| CPDF_Font* pFind = nullptr;
|
| for (const auto& it : *pFonts) {
|
| const CFX_ByteString& csKey = it.first;
|
| - CPDF_Object* pObj = it.second;
|
| - if (!pObj)
|
| + if (!it.second)
|
| continue;
|
|
|
| - CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect());
|
| + CPDF_Dictionary* pElement = ToDictionary(it.second->GetDirect());
|
| if (!pElement)
|
| continue;
|
| if (pElement->GetStringFor("Type") != "Font")
|
| @@ -154,10 +154,8 @@ void CBA_FontMap::AddFontToAnnotDict(CPDF_Font* pFont,
|
| return;
|
|
|
| CPDF_Dictionary* pAPDict = m_pAnnotDict->GetDictFor("AP");
|
| - if (!pAPDict) {
|
| - pAPDict = new CPDF_Dictionary(m_pDocument->GetByteStringPool());
|
| - m_pAnnotDict->SetFor("AP", pAPDict);
|
| - }
|
| + if (!pAPDict)
|
| + pAPDict = m_pAnnotDict->SetNewFor<CPDF_Dictionary>("AP");
|
|
|
| // to avoid checkbox and radiobutton
|
| CPDF_Object* pObject = pAPDict->GetObjectFor(m_sAPType);
|
| @@ -167,7 +165,8 @@ void CBA_FontMap::AddFontToAnnotDict(CPDF_Font* pFont,
|
| CPDF_Stream* pStream = pAPDict->GetStreamFor(m_sAPType);
|
| if (!pStream) {
|
| pStream = m_pDocument->NewIndirect<CPDF_Stream>();
|
| - pAPDict->SetReferenceFor(m_sAPType, m_pDocument, pStream);
|
| + pAPDict->SetNewFor<CPDF_Reference>(m_sAPType, m_pDocument,
|
| + pStream->GetObjNum());
|
| }
|
|
|
| CPDF_Dictionary* pStreamDict = pStream->GetDict();
|
| @@ -178,18 +177,17 @@ void CBA_FontMap::AddFontToAnnotDict(CPDF_Font* pFont,
|
|
|
| if (pStreamDict) {
|
| CPDF_Dictionary* pStreamResList = pStreamDict->GetDictFor("Resources");
|
| - if (!pStreamResList) {
|
| - pStreamResList = new CPDF_Dictionary(m_pDocument->GetByteStringPool());
|
| - pStreamDict->SetFor("Resources", pStreamResList);
|
| - }
|
| + if (!pStreamResList)
|
| + pStreamResList = pStreamDict->SetNewFor<CPDF_Dictionary>("Resources");
|
| CPDF_Dictionary* pStreamResFontList = pStreamResList->GetDictFor("Font");
|
| if (!pStreamResFontList) {
|
| pStreamResFontList = m_pDocument->NewIndirect<CPDF_Dictionary>();
|
| - pStreamResList->SetReferenceFor("Font", m_pDocument, pStreamResFontList);
|
| + pStreamResList->SetNewFor<CPDF_Reference>(
|
| + "Font", m_pDocument, pStreamResFontList->GetObjNum());
|
| }
|
| if (!pStreamResFontList->KeyExist(sAlias)) {
|
| - pStreamResFontList->SetReferenceFor(sAlias, m_pDocument,
|
| - pFont->GetFontDict()->GetObjNum());
|
| + pStreamResFontList->SetNewFor<CPDF_Reference>(
|
| + sAlias, m_pDocument, pFont->GetFontDict()->GetObjNum());
|
| }
|
| }
|
| }
|
|
|