From fb72726e51bfd0c7bfc61c9b354e2b60f46adac5 Mon Sep 17 00:00:00 2001 From: Artem Strygin Date: Mon, 11 Jun 2018 18:19:57 +0000 Subject: Implement CPDF_Object::MakeReference method. Change-Id: I153747ef587a184eaef58ff09dbf8f214c9ddfb3 Reviewed-on: https://pdfium-review.googlesource.com/17230 Reviewed-by: Tom Sepez Commit-Queue: Art Snake --- core/fpdfapi/page/cpdf_image.cpp | 8 +++----- core/fpdfapi/page/cpdf_streamcontentparser.cpp | 5 ++--- 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'core/fpdfapi/page') 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& pBitmap) { pdfium::MakeUnique(m_pDocument->GetByteStringPool()); CPDF_Stream* pCTS = m_pDocument->NewIndirect( std::move(pColorTable), iPalette * 3, std::move(pNewDict)); - pCS->AddNew(m_pDocument.Get(), pCTS->GetObjNum()); - pDict->SetNewFor("ColorSpace", m_pDocument.Get(), - pCS->GetObjNum()); + pCS->Add(pCTS->MakeReference(m_pDocument.Get())); + pDict->SetFor("ColorSpace", pCS->MakeReference(m_pDocument.Get())); } else { pDict->SetNewFor("ColorSpace", "DeviceGray"); } @@ -281,8 +280,7 @@ void CPDF_Image::SetImage(const RetainPtr& pBitmap) { pMaskDict->SetNewFor("Length", mask_size); CPDF_Stream* pNewStream = m_pDocument->NewIndirect( std::move(mask_buf), mask_size, std::move(pMaskDict)); - pDict->SetNewFor("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(key, m_pDocument.Get(), dwObjNum); + if (pObj && !pObj->IsInline()) + pDict->SetFor(key, pObj->MakeReference(m_pDocument.Get())); else pDict->SetFor(key, std::move(pObj)); } -- cgit v1.2.3