Index: fpdfsdk/src/fpdfeditpage.cpp |
diff --git a/fpdfsdk/src/fpdfeditpage.cpp b/fpdfsdk/src/fpdfeditpage.cpp |
index 4c9fd351088ebc0501a69522484a90b7f083afc3..2e84aa5dcb41e7478e2b35d8452d5881b6cf5126 100644 |
--- a/fpdfsdk/src/fpdfeditpage.cpp |
+++ b/fpdfsdk/src/fpdfeditpage.cpp |
@@ -102,7 +102,7 @@ DLLEXPORT FPDF_PAGE STDCALL FPDFPage_New(FPDF_DOCUMENT document, int page_index, |
DLLEXPORT int STDCALL FPDFPage_GetRotation(FPDF_PAGE page) |
{ |
CPDF_Page* pPage = (CPDF_Page*)page; |
- if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") |
+ if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect() |
|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page")) |
{ |
return -1; |
@@ -112,8 +112,8 @@ DLLEXPORT int STDCALL FPDFPage_GetRotation(FPDF_PAGE page) |
int rotate = 0; |
if(pDict != NULL) |
{ |
- if(pDict->KeyExist("Rotate")) |
- rotate = pDict->GetElement("Rotate")->GetDirect()->GetInteger() / 90; |
+ if (pDict->KeyExist("Rotate")) |
+ rotate = pDict->GetElement("Rotate")->GetDirect()? pDict->GetElement("Rotate")->GetDirect()->GetInteger() / 90 : 0; |
else |
{ |
if(pDict->KeyExist("Parent")) |
@@ -123,7 +123,7 @@ DLLEXPORT int STDCALL FPDFPage_GetRotation(FPDF_PAGE page) |
{ |
if(pPages->KeyExist("Rotate")) |
{ |
- rotate = pPages->GetElement("Rotate")->GetDirect()->GetInteger() / 90; |
+ rotate = pPages->GetElement("Rotate")->GetDirect()? pPages->GetElement("Rotate")->GetDirect()->GetInteger() / 90 : 0; |
break; |
} |
else if(pPages->KeyExist("Parent")) |
@@ -144,7 +144,7 @@ DLLEXPORT int STDCALL FPDFPage_GetRotation(FPDF_PAGE page) |
DLLEXPORT void STDCALL FPDFPage_InsertObject(FPDF_PAGE page, FPDF_PAGEOBJECT page_obj) |
{ |
CPDF_Page* pPage = (CPDF_Page*)page; |
- if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") |
+ if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect() |
|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page")) |
{ |
return; |
@@ -199,7 +199,7 @@ DLLEXPORT void STDCALL FPDFPage_InsertObject(FPDF_PAGE page, FPDF_PAGEOBJECT pag |
DLLEXPORT int STDCALL FPDFPage_CountObject(FPDF_PAGE page) |
{ |
CPDF_Page* pPage = (CPDF_Page*)page; |
- if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") |
+ if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect() |
|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page")) |
{ |
return -1; |
@@ -263,7 +263,7 @@ DLLEXPORT FPDF_BOOL STDCALL FPDFPageObj_HasTransparency(FPDF_PAGEOBJECT pageObje |
DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GenerateContent(FPDF_PAGE page) |
{ |
CPDF_Page* pPage = (CPDF_Page*)page; |
- if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") |
+ if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect() |
|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page")) |
{ |
return FALSE; |
@@ -318,7 +318,7 @@ DLLEXPORT void STDCALL FPDFPage_TransformAnnots(FPDF_PAGE page, |
DLLEXPORT void STDCALL FPDFPage_SetRotation(FPDF_PAGE page, int rotate) |
{ |
CPDF_Page* pPage = (CPDF_Page*)page; |
- if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") |
+ if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect() |
|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page")) |
{ |
return; |