Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
| 6 | |
| 7 #include "core/fpdfapi/parser/cpdf_linearized.h" | |
| 8 | |
| 9 #include "core/fpdfapi/parser/cpdf_dictionary.h" | |
|
Lei Zhang
2016/11/01 00:29:53
nit: alphabetical order
snake
2016/11/01 14:39:24
Done.
| |
| 10 #include "core/fpdfapi/parser/cpdf_array.h" | |
| 11 | |
| 12 // static | |
| 13 std::unique_ptr<CPDF_Linearized> CPDF_Linearized::CreateForObject( | |
| 14 std::unique_ptr<CPDF_Object, ReleaseDeleter<CPDF_Object>> pObj) { | |
| 15 if (!pObj) | |
| 16 return std::unique_ptr<CPDF_Linearized>(); | |
| 17 CPDF_Dictionary* pDict = pObj->GetDict(); | |
| 18 if (!pDict || !pDict->GetObjectFor("Linearized")) | |
| 19 return std::unique_ptr<CPDF_Linearized>(); | |
| 20 return std::unique_ptr<CPDF_Linearized>(new CPDF_Linearized(pDict)); | |
|
Lei Zhang
2016/11/01 00:29:53
We have MakeUnique() in PDFium too.
snake
2016/11/01 14:39:24
I can not use pdfium::MakeUnique in this case, bec
Lei Zhang
2016/11/01 22:51:28
Yes, I'm being silly.
| |
| 21 } | |
| 22 | |
| 23 CPDF_Linearized::CPDF_Linearized(CPDF_Dictionary* pDict) { | |
| 24 m_szFileSize = pDict->GetIntegerFor("L"); | |
| 25 m_dwFirstPageNo = pDict->GetIntegerFor("P"); | |
| 26 m_szLastXRefOffset = pDict->GetIntegerFor("T"); | |
| 27 m_PageCount = pDict->GetIntegerFor("N"); | |
| 28 m_szFirstPageEndOffset = pDict->GetIntegerFor("E"); | |
| 29 m_FirstPageObjNum = pDict->GetIntegerFor("O"); | |
| 30 CPDF_Array* pHintStreamRange = pDict->GetArrayFor("H"); | |
| 31 size_t nHintStreamSize = pHintStreamRange ? pHintStreamRange->GetCount() : 0; | |
| 32 if (nHintStreamSize == 2 || nHintStreamSize == 4) { | |
| 33 m_szHintStart = pHintStreamRange->GetIntegerAt(0); | |
| 34 m_szHintLength = pHintStreamRange->GetIntegerAt(1); | |
| 35 } | |
| 36 } | |
| 37 | |
| 38 CPDF_Linearized::~CPDF_Linearized() {} | |
| 39 | |
| 40 bool CPDF_Linearized::HasHintTable() const { | |
| 41 return GetPageCount() > 1 && GetHintStart() > 0 && GetHintLength() > 0; | |
| 42 } | |
| OLD | NEW |