From b9cc7a0d0ece261db2cd2a1486b05e3338bca322 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Mon, 1 Feb 2016 13:42:30 -0800 Subject: Merge to XFA: Remove CGW_ArrayTemplate and its O(n^2 log n) sort. Original Review URL: https://codereview.chromium.org/1652613002 . (cherry picked from commit 0841b0f37678ba4962247f5636e9390718fc027e) TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1657663003 . --- fpdfsdk/include/fsdk_mgr.h | 74 +--------------------------------------------- 1 file changed, 1 insertion(+), 73 deletions(-) (limited to 'fpdfsdk/include/fsdk_mgr.h') diff --git a/fpdfsdk/include/fsdk_mgr.h b/fpdfsdk/include/fsdk_mgr.h index e53be1b1a5..042ba3811d 100644 --- a/fpdfsdk/include/fsdk_mgr.h +++ b/fpdfsdk/include/fsdk_mgr.h @@ -561,6 +561,7 @@ class CPDFSDK_Document { FX_BOOL m_bChangeMask; FX_BOOL m_bBeingDestroyed; }; + class CPDFSDK_PageView final { public: CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc, UnderlyingPageType* page); @@ -667,77 +668,4 @@ class CPDFSDK_PageView final { FX_BOOL m_bLocked; }; -template -class CGW_ArrayTemplate : public CFX_ArrayTemplate { - public: - CGW_ArrayTemplate() {} - ~CGW_ArrayTemplate() {} - - typedef int (*LP_COMPARE)(TYPE p1, TYPE p2); - - void Sort(LP_COMPARE pCompare, FX_BOOL bAscent = TRUE) { - int nSize = this->GetSize(); - QuickSort(0, nSize - 1, bAscent, pCompare); - } - - private: - void QuickSort(FX_UINT nStartPos, - FX_UINT nStopPos, - FX_BOOL bAscend, - LP_COMPARE pCompare) { - if (nStartPos >= nStopPos) - return; - - if ((nStopPos - nStartPos) == 1) { - TYPE Value1 = this->GetAt(nStartPos); - TYPE Value2 = this->GetAt(nStopPos); - - int iGreate = (*pCompare)(Value1, Value2); - if ((bAscend && iGreate > 0) || (!bAscend && iGreate < 0)) { - this->SetAt(nStartPos, Value2); - this->SetAt(nStopPos, Value1); - } - return; - } - - FX_UINT m = nStartPos + (nStopPos - nStartPos) / 2; - FX_UINT i = nStartPos; - - TYPE Value = this->GetAt(m); - - while (i < m) { - TYPE temp = this->GetAt(i); - - int iGreate = (*pCompare)(temp, Value); - if ((bAscend && iGreate > 0) || (!bAscend && iGreate < 0)) { - this->InsertAt(m + 1, temp); - this->RemoveAt(i); - m--; - } else { - i++; - } - } - - FX_UINT j = nStopPos; - - while (j > m) { - TYPE temp = this->GetAt(j); - - int iGreate = (*pCompare)(temp, Value); - if ((bAscend && iGreate < 0) || (!bAscend && iGreate > 0)) { - this->RemoveAt(j); - this->InsertAt(m, temp); - m++; - } else { - j--; - } - } - - if (nStartPos < m) - QuickSort(nStartPos, m, bAscend, pCompare); - if (nStopPos > m) - QuickSort(m, nStopPos, bAscend, pCompare); - } -}; - #endif // FPDFSDK_INCLUDE_FSDK_MGR_H_ -- cgit v1.2.3