diff options
Diffstat (limited to 'core/fpdfapi/page')
-rw-r--r-- | core/fpdfapi/page/cpdf_image.cpp | 8 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_streamcontentparser.cpp | 5 |
2 files changed, 5 insertions, 8 deletions
diff --git a/core/fpdfapi/page/cpdf_image.cpp b/core/fpdfapi/page/cpdf_image.cpp index 8720342d35..a8b593682b 100644 --- a/core/fpdfapi/page/cpdf_image.cpp +++ b/core/fpdfapi/page/cpdf_image.cpp @@ -238,9 +238,8 @@ void CPDF_Image::SetImage(const RetainPtr<CFX_DIBitmap>& pBitmap) { pdfium::MakeUnique<CPDF_Dictionary>(m_pDocument->GetByteStringPool()); CPDF_Stream* pCTS = m_pDocument->NewIndirect<CPDF_Stream>( std::move(pColorTable), iPalette * 3, std::move(pNewDict)); - pCS->AddNew<CPDF_Reference>(m_pDocument.Get(), pCTS->GetObjNum()); - pDict->SetNewFor<CPDF_Reference>("ColorSpace", m_pDocument.Get(), - pCS->GetObjNum()); + pCS->Add(pCTS->MakeReference(m_pDocument.Get())); + pDict->SetFor("ColorSpace", pCS->MakeReference(m_pDocument.Get())); } else { pDict->SetNewFor<CPDF_Name>("ColorSpace", "DeviceGray"); } @@ -281,8 +280,7 @@ void CPDF_Image::SetImage(const RetainPtr<CFX_DIBitmap>& pBitmap) { pMaskDict->SetNewFor<CPDF_Number>("Length", mask_size); CPDF_Stream* pNewStream = m_pDocument->NewIndirect<CPDF_Stream>( std::move(mask_buf), mask_size, std::move(pMaskDict)); - pDict->SetNewFor<CPDF_Reference>("SMask", m_pDocument.Get(), - pNewStream->GetObjNum()); + pDict->SetFor("SMask", pNewStream->MakeReference(m_pDocument.Get())); } uint8_t* src_buf = pBitmap->GetBuffer(); diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp index 7e7c337d96..7562fb37a6 100644 --- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp +++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp @@ -630,9 +630,8 @@ void CPDF_StreamContentParser::Handle_BeginImage() { ByteString key(word.Right(word.GetLength() - 1)); auto pObj = m_pSyntax->ReadNextObject(false, false, 0); if (!key.IsEmpty()) { - uint32_t dwObjNum = pObj ? pObj->GetObjNum() : 0; - if (dwObjNum) - pDict->SetNewFor<CPDF_Reference>(key, m_pDocument.Get(), dwObjNum); + if (pObj && !pObj->IsInline()) + pDict->SetFor(key, pObj->MakeReference(m_pDocument.Get())); else pDict->SetFor(key, std::move(pObj)); } |