Index: fpdfsdk/src/fpdfview.cpp |
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp |
index 23d44935b544743727e3f6dd80f2d7c4c391d791..2e1bca3a6689c7a33a3ed96c43ef94d73339c023 100644 |
--- a/fpdfsdk/src/fpdfview.cpp |
+++ b/fpdfsdk/src/fpdfview.cpp |
@@ -272,17 +272,11 @@ DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadDocument(FPDF_STRING file_path, FPDF_BY |
{ |
CPDF_Parser* pParser = FX_NEW CPDF_Parser; |
pParser->SetPassword(password); |
- try { |
- FX_DWORD err_code = pParser->StartParse((FX_LPCSTR)file_path); |
- if (err_code) { |
- delete pParser; |
- ProcessParseError(err_code); |
- return NULL; |
- } |
- } |
- catch (...) { |
+ |
+ FX_DWORD err_code = pParser->StartParse((FX_LPCSTR)file_path); |
+ if (err_code) { |
delete pParser; |
- SetLastError(FPDF_ERR_UNKNOWN); |
+ ProcessParseError(err_code); |
return NULL; |
} |
return pParser->GetDocument(); |
@@ -318,23 +312,16 @@ DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadMemDocument(const void* data_buf, int s |
{ |
CPDF_Parser* pParser = FX_NEW CPDF_Parser; |
pParser->SetPassword(password); |
- try { |
- CMemFile* pMemFile = FX_NEW CMemFile((FX_BYTE*)data_buf, size); |
- FX_DWORD err_code = pParser->StartParse(pMemFile); |
- if (err_code) { |
- delete pParser; |
- ProcessParseError(err_code); |
- return NULL; |
- } |
- CPDF_Document * pDoc = NULL; |
- pDoc = pParser?pParser->GetDocument():NULL; |
- CheckUnSupportError(pDoc, err_code); |
- } |
- catch (...) { |
+ CMemFile* pMemFile = FX_NEW CMemFile((FX_BYTE*)data_buf, size); |
+ FX_DWORD err_code = pParser->StartParse(pMemFile); |
+ if (err_code) { |
delete pParser; |
- SetLastError(FPDF_ERR_UNKNOWN); |
+ ProcessParseError(err_code); |
return NULL; |
} |
+ CPDF_Document * pDoc = NULL; |
+ pDoc = pParser?pParser->GetDocument():NULL; |
+ CheckUnSupportError(pDoc, err_code); |
return pParser->GetDocument(); |
} |
@@ -343,22 +330,15 @@ DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadCustomDocument(FPDF_FILEACCESS* pFileAc |
CPDF_Parser* pParser = FX_NEW CPDF_Parser; |
pParser->SetPassword(password); |
CPDF_CustomAccess* pFile = FX_NEW CPDF_CustomAccess(pFileAccess); |
- try { |
- FX_DWORD err_code = pParser->StartParse(pFile); |
- if (err_code) { |
- delete pParser; |
- ProcessParseError(err_code); |
- return NULL; |
- } |
- CPDF_Document * pDoc = NULL; |
- pDoc = pParser?pParser->GetDocument():NULL; |
- CheckUnSupportError(pDoc, err_code); |
- } |
- catch (...) { |
+ FX_DWORD err_code = pParser->StartParse(pFile); |
+ if (err_code) { |
delete pParser; |
- SetLastError(FPDF_ERR_UNKNOWN); |
+ ProcessParseError(err_code); |
return NULL; |
} |
+ CPDF_Document * pDoc = NULL; |
+ pDoc = pParser?pParser->GetDocument():NULL; |
+ CheckUnSupportError(pDoc, err_code); |
return pParser->GetDocument(); |
} |
@@ -403,13 +383,7 @@ DLLEXPORT FPDF_PAGE STDCALL FPDF_LoadPage(FPDF_DOCUMENT document, int page_index |
if (pDict == NULL) return NULL; |
CPDF_Page* pPage = FX_NEW CPDF_Page; |
pPage->Load(pDoc, pDict); |
- try { |
- pPage->ParseContent(); |
- } |
- catch (...) { |
- delete pPage; |
- return NULL; |
- } |
+ pPage->ParseContent(); |
// CheckUnSupportError(pDoc, 0); |
@@ -473,14 +447,9 @@ DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc, FPDF_PAGE page, int start_x, int |
} |
else |
pContext->m_pDevice = FX_NEW CFX_WindowsDevice(dc); |
- if (flags & FPDF_NO_CATCH) |
- Func_RenderPage(pContext, page, start_x, start_y, size_x, size_y, rotate, flags,TRUE,NULL); |
- else { |
- try { |
- Func_RenderPage(pContext, page, start_x, start_y, size_x, size_y, rotate, flags,TRUE,NULL); |
- } catch (...) { |
- } |
- } |
+ |
+ Func_RenderPage(pContext, page, start_x, start_y, size_x, size_y, rotate, flags,TRUE,NULL); |
+ |
if (bBackgroundAlphaNeeded) |
{ |
if (pBitmap) |
@@ -559,14 +528,7 @@ DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc, FPDF_PAGE page, int start_x, int |
#endif |
// output to bitmap device |
- if (flags & FPDF_NO_CATCH) |
- Func_RenderPage(pContext, page, start_x - rect.left, start_y - rect.top, size_x, size_y, rotate, flags); |
- else { |
- try { |
- Func_RenderPage(pContext, page, start_x - rect.left, start_y - rect.top, size_x, size_y, rotate, flags); |
- } catch (...) { |
- } |
- } |
+ Func_RenderPage(pContext, page, start_x - rect.left, start_y - rect.top, size_x, size_y, rotate, flags); |
#ifdef DEBUG_TRACE |
CPDF_ModuleMgr::Get()->ReportError(999, "Finished PDF rendering"); |
@@ -634,14 +596,8 @@ DLLEXPORT void STDCALL FPDF_RenderPageBitmap(FPDF_BITMAP bitmap, FPDF_PAGE page, |
else |
((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap); |
#endif |
- if (flags & FPDF_NO_CATCH) |
- Func_RenderPage(pContext, page, start_x, start_y, size_x, size_y, rotate, flags,TRUE,NULL); |
- else { |
- try { |
- Func_RenderPage(pContext, page, start_x, start_y, size_x, size_y, rotate, flags,TRUE,NULL); |
- } catch (...) { |
- } |
- } |
+ |
+ Func_RenderPage(pContext, page, start_x, start_y, size_x, size_y, rotate, flags,TRUE,NULL); |
delete pContext; |
pPage->RemovePrivateData((void*)1); |