Chromium Code Reviews| Index: fpdfsdk/fpdf_flatten.cpp |
| diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp |
| index f7d82773e1476e2bd88893dfa5f37642183a9dfe..6cffbe0b3120dd2490ff89fe41808711f2e701c3 100644 |
| --- a/fpdfsdk/fpdf_flatten.cpp |
| +++ b/fpdfsdk/fpdf_flatten.cpp |
| @@ -397,8 +397,6 @@ DLLEXPORT int STDCALL FPDFPage_Flatten(FPDF_PAGE page, int nFlag) { |
| continue; |
| CPDF_Dictionary* pAPDic = pAPStream->GetDict(); |
| - CFX_Matrix matrix = pAPDic->GetMatrixFor("Matrix"); |
|
Tom Sepez
2016/11/08 19:44:36
Note: not used til below, pAPDic not modified in-b
|
| - |
| CFX_FloatRect rcStream; |
| if (pAPDic->KeyExist("Rect")) |
| rcStream = pAPDic->GetRectFor("Rect"); |
| @@ -409,13 +407,15 @@ DLLEXPORT int STDCALL FPDFPage_Flatten(FPDF_PAGE page, int nFlag) { |
| continue; |
| CPDF_Object* pObj = pAPStream; |
| + if (pObj->IsInline()) { |
| + pObj = pObj->Clone(); |
| + pDocument->AddIndirectObject(pObj); |
| + } |
| - if (pObj) { |
|
Tom Sepez
2016/11/08 19:44:36
Note: already checked at 396.
|
| - CPDF_Dictionary* pObjDic = pObj->GetDict(); |
| - if (pObjDic) { |
| - pObjDic->SetNameFor("Type", "XObject"); |
| - pObjDic->SetNameFor("Subtype", "Form"); |
| - } |
| + CPDF_Dictionary* pObjDic = pObj->GetDict(); |
| + if (pObjDic) { |
| + pObjDic->SetNameFor("Type", "XObject"); |
| + pObjDic->SetNameFor("Subtype", "Form"); |
| } |
| CPDF_Dictionary* pXObject = pNewXORes->GetDictFor("XObject"); |
| @@ -426,15 +426,14 @@ DLLEXPORT int STDCALL FPDFPage_Flatten(FPDF_PAGE page, int nFlag) { |
| CFX_ByteString sFormName; |
| sFormName.Format("F%d", i); |
| - pXObject->SetReferenceFor(sFormName, pDocument, |
| - pDocument->AddIndirectObject(pObj)); |
| + pXObject->SetReferenceFor(sFormName, pDocument, pObj->GetObjNum()); |
| CPDF_StreamAcc acc; |
| acc.LoadAllData(pNewXObject); |
| const uint8_t* pData = acc.GetData(); |
| CFX_ByteString sStream(pData, acc.GetSize()); |
| - |
| + CFX_Matrix matrix = pAPDic->GetMatrixFor("Matrix"); |
| if (matrix.IsIdentity()) { |
| matrix.a = 1.0f; |
| matrix.b = 0.0f; |