summaryrefslogtreecommitdiff
path: root/fpdfsdk/include/fsdk_mgr.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2016-02-01 13:42:30 -0800
committerTom Sepez <tsepez@chromium.org>2016-02-01 13:42:30 -0800
commitb9cc7a0d0ece261db2cd2a1486b05e3338bca322 (patch)
treec91de6c7848ce9cdf6eaab0a84fac27064a00c48 /fpdfsdk/include/fsdk_mgr.h
parent58fb36a3de3174db41669c2ed0d67e4a18a4a6de (diff)
downloadpdfium-b9cc7a0d0ece261db2cd2a1486b05e3338bca322.tar.xz
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 .
Diffstat (limited to 'fpdfsdk/include/fsdk_mgr.h')
-rw-r--r--fpdfsdk/include/fsdk_mgr.h74
1 files changed, 1 insertions, 73 deletions
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 TYPE>
-class CGW_ArrayTemplate : public CFX_ArrayTemplate<TYPE> {
- 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_