From 4eb4d7f6c707cc2c23c806aa540d055c8832b55d Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Wed, 22 Jul 2015 15:04:26 -0700 Subject: Revert "Fix else-after-returns throughout pdfium." This reverts commit 7cc97521db1e52d5927f5605de5f9a7102f8af40. --- .../src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp | 150 ++++++++++++--------- 1 file changed, 90 insertions(+), 60 deletions(-) (limited to '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 854be75ad4..f7174f7a72 100644 --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp @@ -1993,16 +1993,21 @@ CFX_ByteString CPDF_SyntaxParser::ReadHexString() void CPDF_SyntaxParser::ToNextLine() { uint8_t ch; - while (GetNextChar(ch)) { + while (1) { + if (!GetNextChar(ch)) { + return; + } if (ch == '\n') { - break; + return; } if (ch == '\r') { GetNextChar(ch); - if (ch != '\n') { - --m_Pos; + if (ch == '\n') { + return; + } else { + m_Pos --; + return; } - break; } } } @@ -2074,13 +2079,20 @@ CPDF_Object* CPDF_SyntaxParser::GetObject(CPDF_IndirectObjects* pObjList, FX_DWO return (CPDF_Object*)PDFOBJ_REFERENCE; } return new CPDF_Reference(pObjList, objnum); + } else { + m_Pos = SavedPos; + if (bTypeOnly) { + return (CPDF_Object*)PDFOBJ_NUMBER; + } + return CPDF_Number::Create(word); } + } else { + m_Pos = SavedPos; + if (bTypeOnly) { + return (CPDF_Object*)PDFOBJ_NUMBER; + } + return CPDF_Number::Create(word); } - m_Pos = SavedPos; - if (bTypeOnly) { - return (CPDF_Object*)PDFOBJ_NUMBER; - } - return CPDF_Number::Create(word); } if (word == FX_BSTRC("true") || word == FX_BSTRC("false")) { if (bTypeOnly) { @@ -2240,18 +2252,25 @@ CPDF_Object* CPDF_SyntaxParser::GetObjectByStrict(CPDF_IndirectObjects* pObjList if (bIsNumber) { CFX_ByteString nextword2 = GetNextWord(bIsNumber); if (nextword2 == FX_BSTRC("R")) { + FX_DWORD objnum = FXSYS_atoi(word); if (bTypeOnly) { return (CPDF_Object*)PDFOBJ_REFERENCE; } - FX_DWORD objnum = FXSYS_atoi(word); return new CPDF_Reference(pObjList, objnum); + } else { + m_Pos = SavedPos; + if (bTypeOnly) { + return (CPDF_Object*)PDFOBJ_NUMBER; + } + return CPDF_Number::Create(word); } + } else { + m_Pos = SavedPos; + if (bTypeOnly) { + return (CPDF_Object*)PDFOBJ_NUMBER; + } + return CPDF_Number::Create(word); } - m_Pos = SavedPos; - if (bTypeOnly) { - return (CPDF_Object*)PDFOBJ_NUMBER; - } - return CPDF_Number::Create(word); } if (word == FX_BSTRC("true") || word == FX_BSTRC("false")) { if (bTypeOnly) { @@ -3121,20 +3140,21 @@ FX_BOOL CPDF_DataAvail::CheckAcroFormSubObject(IFX_DownloadHints* pHints) m_objs_array.RemoveAll(); } return bRet; - } - CFX_PtrArray new_objs_array; - FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); - if (bRet) { - int32_t iSize = m_arrayAcroforms.GetSize(); - for (int32_t i = 0; i < iSize; ++i) { - ((CPDF_Object *)m_arrayAcroforms.GetAt(i))->Release(); - } - m_arrayAcroforms.RemoveAll(); } else { - m_objs_array.RemoveAll(); - m_objs_array.Append(new_objs_array); + CFX_PtrArray new_objs_array; + FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); + if (bRet) { + int32_t iSize = m_arrayAcroforms.GetSize(); + for (int32_t i = 0; i < iSize; ++i) { + ((CPDF_Object *)m_arrayAcroforms.GetAt(i))->Release(); + } + m_arrayAcroforms.RemoveAll(); + } else { + m_objs_array.RemoveAll(); + m_objs_array.Append(new_objs_array); + } + return bRet; } - return bRet; } FX_BOOL CPDF_DataAvail::CheckAcroForm(IFX_DownloadHints* pHints) { @@ -3188,14 +3208,16 @@ FX_BOOL CPDF_DataAvail::CheckDocStatus(IFX_DownloadHints *pHints) case PDF_DATAAVAIL_PAGETREE: if (m_bTotalLoadPageTree) { return CheckPages(pHints); + } else { + return LoadDocPages(pHints); } - return LoadDocPages(pHints); case PDF_DATAAVAIL_PAGE: if (m_bTotalLoadPageTree) { return CheckPage(pHints); + } else { + m_docStatus = PDF_DATAAVAIL_PAGE_LATERLOAD; + return TRUE; } - m_docStatus = PDF_DATAAVAIL_PAGE_LATERLOAD; - return TRUE; case PDF_DATAAVAIL_ERROR: return LoadAllFile(pHints); case PDF_DATAAVAIL_PAGE_LATERLOAD: @@ -3739,9 +3761,10 @@ FX_BOOL CPDF_DataAvail::CheckEnd(IFX_DownloadHints* pHints) SetStartOffset(m_dwXRefOffset); m_docStatus = PDF_DATAAVAIL_CROSSREF; return TRUE; + } else { + m_docStatus = PDF_DATAAVAIL_LOADALLFILE; + return TRUE; } - m_docStatus = PDF_DATAAVAIL_LOADALLFILE; - return TRUE; } pHints->AddSegment(req_pos, dwSize); return FALSE; @@ -3776,6 +3799,9 @@ int32_t CPDF_DataAvail::CheckCrossRefStream(IFX_DownloadHints* pHints, FX_FILESI xref_offset = pObj->GetDict()->GetInteger(FX_BSTRC("Prev")); pObj->Release(); return 1; + } else { + pObj->Release(); + return -1; } } pObj->Release(); @@ -3929,8 +3955,7 @@ FX_BOOL CPDF_DataAvail::CheckAllCrossRefStream(IFX_DownloadHints *pHints) m_Pos = xref_offset; } return TRUE; - } - if (nRet == -1) { + } else if (nRet == -1) { m_docStatus = PDF_DATAAVAIL_ERROR; } return FALSE; @@ -4033,10 +4058,11 @@ FX_BOOL CPDF_DataAvail::CheckTrailer(IFX_DownloadHints* pHints) } } return TRUE; + } else { + m_dwPrevXRefOffset = 0; + m_docStatus = PDF_DATAAVAIL_TRAILER_APPEND; + pTrailer->Release(); } - m_dwPrevXRefOffset = 0; - m_docStatus = PDF_DATAAVAIL_TRAILER_APPEND; - pTrailer->Release(); return TRUE; } pHints->AddSegment(m_Pos, iTrailerSize); @@ -4269,8 +4295,9 @@ FX_BOOL CPDF_DataAvail::LoadDocPages(IFX_DownloadHints* pHints) if (CheckPageCount(pHints)) { m_docStatus = PDF_DATAAVAIL_PAGE; return TRUE; + } else { + m_bTotalLoadPageTree = TRUE; } - m_bTotalLoadPageTree = TRUE; return FALSE; } FX_BOOL CPDF_DataAvail::LoadPages(IFX_DownloadHints* pHints) @@ -4336,14 +4363,15 @@ FX_BOOL CPDF_DataAvail::CheckPageAnnots(int32_t iPage, IFX_DownloadHints* pHints m_objs_array.RemoveAll(); } return bRet; + } else { + CFX_PtrArray new_objs_array; + FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); + m_objs_array.RemoveAll(); + if (!bRet) { + m_objs_array.Append(new_objs_array); + } + return bRet; } - CFX_PtrArray new_objs_array; - FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); - m_objs_array.RemoveAll(); - if (!bRet) { - m_objs_array.Append(new_objs_array); - } - return bRet; } FX_BOOL CPDF_DataAvail::CheckLinearizedFirstPage(int32_t iPage, IFX_DownloadHints* pHints) { @@ -4353,10 +4381,10 @@ FX_BOOL CPDF_DataAvail::CheckLinearizedFirstPage(int32_t iPage, IFX_DownloadHint } m_bAnnotsLoad = TRUE; } - if (m_bAnnotsLoad) { - if (!CheckLinearizedData(pHints)) + if (m_bAnnotsLoad) + if (!CheckLinearizedData(pHints)) { return FALSE; - } + } m_bPageLoadedOK = FALSE; return TRUE; } @@ -4511,14 +4539,15 @@ FX_BOOL CPDF_DataAvail::CheckResources(IFX_DownloadHints* pHints) m_objs_array.RemoveAll(); } return bRet; + } else { + CFX_PtrArray new_objs_array; + FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); + m_objs_array.RemoveAll(); + if (!bRet) { + m_objs_array.Append(new_objs_array); + } + return bRet; } - CFX_PtrArray new_objs_array; - FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); - m_objs_array.RemoveAll(); - if (!bRet) { - m_objs_array.Append(new_objs_array); - } - return bRet; } void CPDF_DataAvail::GetLinearizedMainXRefInfo(FX_FILESIZE *pPos, FX_DWORD *pSize) { @@ -4575,15 +4604,16 @@ FX_BOOL CPDF_SortObjNumArray::Find(FX_DWORD dwObjNum) } FX_BOOL CPDF_SortObjNumArray::BinarySearch(FX_DWORD value, int32_t &iNext) { + int32_t iLen = m_number_array.GetSize(); int32_t iLow = 0; - int32_t iHigh = m_number_array.GetSize() - 1; + int32_t iHigh = iLen - 1; + int32_t iMid = 0; while (iLow <= iHigh) { - int32_t iMid = (iLow + iHigh) / 2; + iMid = (iLow + iHigh) / 2; if (m_number_array.GetAt(iMid) == value) { iNext = iMid; return TRUE; - } - if (m_number_array.GetAt(iMid) > value) { + } else if (m_number_array.GetAt(iMid) > value) { iHigh = iMid - 1; } else if (m_number_array.GetAt(iMid) < value) { iLow = iMid + 1; -- cgit v1.2.3