Chromium Code Reviews| Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
| diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
| index bc5d3edc2bbc6bcacd66680a15110eaf64899e14..adcb8830b2ba47e25beea0c5f38e30ffac3f2f4e 100644 |
| --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
| +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp |
| @@ -987,16 +987,17 @@ FX_BOOL CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef) { |
| CPDF_Object* pObject = ParseIndirectObjectAt(m_pDocument, *pos, 0, nullptr); |
| if (!pObject) |
| return FALSE; |
| - |
| if (m_pDocument) { |
| + FX_BOOL bInserted = FALSE; |
| CPDF_Dictionary* pDict = m_pDocument->GetRoot(); |
| - if (!pDict || pDict->GetObjNum() != pObject->m_ObjNum) { |
| - m_pDocument->InsertIndirectObject(pObject->m_ObjNum, pObject); |
| + if ((!pDict || pDict->GetObjNum() != pObject->m_ObjNum)) { |
|
Tom Sepez
2015/12/11 00:15:07
still overparenthesized.
|
| + bInserted = m_pDocument->InsertIndirectObject(pObject->m_ObjNum, pObject); |
| } else { |
| if (pObject->IsStream()) |
| pObject->Release(); |
| - return FALSE; |
| } |
| + if (!bInserted) |
| + return FALSE; |
| } |
| CPDF_Stream* pStream = pObject->AsStream(); |
| @@ -4556,7 +4557,8 @@ CPDF_Dictionary* CPDF_DataAvail::GetPage(int index) { |
| if (!pPageDict) { |
| return nullptr; |
| } |
| - m_pDocument->InsertIndirectObject(dwObjNum, pPageDict); |
| + if (!m_pDocument->InsertIndirectObject(dwObjNum, pPageDict)) |
| + return nullptr; |
| return pPageDict->GetDict(); |
| } |
| } |