| 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 27cc8688cc256378f3e90da37234c75da7612d73..cbbeee60247de79759ba8e0a91097376ed972612 100644
|
| --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
|
| +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
|
| @@ -845,9 +845,15 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() {
|
| FX_POSITION pos = pTrailer->GetStartPos();
|
| while (pos) {
|
| CFX_ByteString key;
|
| - CPDF_Object* pObj =
|
| + CPDF_Object* pElement =
|
| pTrailer->GetNextElement(pos, key);
|
| - m_pTrailer->SetAt(key, pObj->Clone(), m_pDocument);
|
| + FX_DWORD dwObjNum = pElement->GetObjNum();
|
| + if (dwObjNum) {
|
| + m_pTrailer->SetAtReference(key, m_pDocument,
|
| + dwObjNum);
|
| + } else {
|
| + m_pTrailer->SetAt(key, pElement->Clone());
|
| + }
|
| }
|
| pObj->Release();
|
| } else {
|
|
|