summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2017-04-26 10:55:54 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-04-26 20:07:23 +0000
commite47e0c96009b8633294eebbb9eb0e84caf525c57 (patch)
tree093c0edb121e54c22e40a704ce473eb48491ccfc
parent2e2a4fcd43677c5882dcf00cb4b99635cb2cfcd3 (diff)
downloadpdfium-chromium/3082.tar.xz
Avoid unordered_set and maps for the time being.chromium/3082
See discussion at https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/rdxOHKzQmRY Change-Id: I1803ae97c39b592001835814e2f6674b2c7cb3ea Reviewed-on: https://pdfium-review.googlesource.com/4531 Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
-rw-r--r--core/fpdfapi/page/cpdf_streamcontentparser.h5
-rw-r--r--core/fpdfdoc/cpdf_occontext.h4
-rw-r--r--fpdfsdk/javascript/app.h4
-rw-r--r--samples/image_diff.cc7
-rw-r--r--xfa/fde/css/cfde_cssstylesheet.h4
-rw-r--r--xfa/fwl/cfwl_notedriver.h5
-rw-r--r--xfa/fxfa/parser/cxfa_document.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_document.h4
-rw-r--r--xfa/fxfa/parser/cxfa_node.cpp19
9 files changed, 24 insertions, 30 deletions
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.h b/core/fpdfapi/page/cpdf_streamcontentparser.h
index 4440aabb43..50eb0eb63a 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.h
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.h
@@ -7,8 +7,8 @@
#ifndef CORE_FPDFAPI_PAGE_CPDF_STREAMCONTENTPARSER_H_
#define CORE_FPDFAPI_PAGE_CPDF_STREAMCONTENTPARSER_H_
+#include <map>
#include <memory>
-#include <unordered_map>
#include <vector>
#include "core/fpdfapi/page/cpdf_contentmark.h"
@@ -73,8 +73,7 @@ class CPDF_StreamContentParser {
static const int kParamBufSize = 16;
- using OpCodes =
- std::unordered_map<uint32_t, void (CPDF_StreamContentParser::*)()>;
+ using OpCodes = std::map<uint32_t, void (CPDF_StreamContentParser::*)()>;
static OpCodes InitializeOpCodes();
void AddNameParam(const CFX_ByteStringC& str);
diff --git a/core/fpdfdoc/cpdf_occontext.h b/core/fpdfdoc/cpdf_occontext.h
index ecdcfae31b..753aa5c176 100644
--- a/core/fpdfdoc/cpdf_occontext.h
+++ b/core/fpdfdoc/cpdf_occontext.h
@@ -7,7 +7,7 @@
#ifndef CORE_FPDFDOC_CPDF_OCCONTEXT_H_
#define CORE_FPDFDOC_CPDF_OCCONTEXT_H_
-#include <unordered_map>
+#include <map>
#include "core/fxcrt/cfx_retain_ptr.h"
#include "core/fxcrt/fx_string.h"
@@ -40,7 +40,7 @@ class CPDF_OCContext : public CFX_Retainable {
CPDF_Document* const m_pDocument;
const UsageType m_eUsageType;
- std::unordered_map<const CPDF_Dictionary*, bool> m_OCGStates;
+ std::map<const CPDF_Dictionary*, bool> m_OCGStates;
};
#endif // CORE_FPDFDOC_CPDF_OCCONTEXT_H_
diff --git a/fpdfsdk/javascript/app.h b/fpdfsdk/javascript/app.h
index 9e11b82419..0a2cfdb58e 100644
--- a/fpdfsdk/javascript/app.h
+++ b/fpdfsdk/javascript/app.h
@@ -8,7 +8,7 @@
#define FPDFSDK_JAVASCRIPT_APP_H_
#include <memory>
-#include <unordered_set>
+#include <set>
#include <vector>
#include "fpdfsdk/javascript/JS_Define.h"
@@ -172,7 +172,7 @@ class app : public CJS_EmbedObj {
bool m_bCalculate;
bool m_bRuntimeHighLight;
- std::unordered_set<std::unique_ptr<GlobalTimer>> m_Timers;
+ std::set<std::unique_ptr<GlobalTimer>> m_Timers;
};
class CJS_App : public CJS_Object {
diff --git a/samples/image_diff.cc b/samples/image_diff.cc
index 3aa626be65..70c74c951c 100644
--- a/samples/image_diff.cc
+++ b/samples/image_diff.cc
@@ -166,9 +166,6 @@ float PercentageDifferent(const Image& baseline, const Image& actual) {
return CalculateDifferencePercentage(actual, pixels_different);
}
-// FIXME: Replace with unordered_map when available.
-typedef std::map<uint32_t, int32_t> RgbaToCountMap;
-
float HistogramPercentageDifferent(const Image& baseline, const Image& actual) {
// TODO(johnme): Consider using a joint histogram instead, as described in
// "Comparing Images Using Joint Histograms" by Pass & Zabih
@@ -178,7 +175,7 @@ float HistogramPercentageDifferent(const Image& baseline, const Image& actual) {
int h = std::min(baseline.h(), actual.h());
// Count occurences of each RGBA pixel value of baseline in the overlap.
- RgbaToCountMap baseline_histogram;
+ std::map<uint32_t, int32_t> baseline_histogram;
for (int y = 0; y < h; ++y) {
for (int x = 0; x < w; ++x) {
// hash_map operator[] inserts a 0 (default constructor) if key not found.
@@ -191,7 +188,7 @@ float HistogramPercentageDifferent(const Image& baseline, const Image& actual) {
for (int y = 0; y < h; ++y) {
for (int x = 0; x < w; ++x) {
uint32_t actual_rgba = actual.pixel_at(x, y);
- RgbaToCountMap::iterator it = baseline_histogram.find(actual_rgba);
+ auto it = baseline_histogram.find(actual_rgba);
if (it != baseline_histogram.end() && it->second > 0)
--it->second;
else
diff --git a/xfa/fde/css/cfde_cssstylesheet.h b/xfa/fde/css/cfde_cssstylesheet.h
index fa73460634..24bebddcbf 100644
--- a/xfa/fde/css/cfde_cssstylesheet.h
+++ b/xfa/fde/css/cfde_cssstylesheet.h
@@ -7,8 +7,8 @@
#ifndef XFA_FDE_CSS_CFDE_CSSSTYLESHEET_H_
#define XFA_FDE_CSS_CFDE_CSSSTYLESHEET_H_
+#include <map>
#include <memory>
-#include <unordered_map>
#include <vector>
#include "core/fxcrt/fx_string.h"
@@ -34,7 +34,7 @@ class CFDE_CSSStyleSheet {
void SkipRuleSet(CFDE_CSSSyntaxParser* pSyntax);
std::vector<std::unique_ptr<CFDE_CSSStyleRule>> m_RuleArray;
- std::unordered_map<uint32_t, wchar_t*> m_StringCache;
+ std::map<uint32_t, wchar_t*> m_StringCache;
};
#endif // XFA_FDE_CSS_CFDE_CSSSTYLESHEET_H_
diff --git a/xfa/fwl/cfwl_notedriver.h b/xfa/fwl/cfwl_notedriver.h
index 2ea3f97cc0..b55e701c40 100644
--- a/xfa/fwl/cfwl_notedriver.h
+++ b/xfa/fwl/cfwl_notedriver.h
@@ -8,8 +8,8 @@
#define XFA_FWL_CFWL_NOTEDRIVER_H_
#include <deque>
+#include <map>
#include <memory>
-#include <unordered_map>
#include <vector>
#include "xfa/fwl/cfwl_event.h"
@@ -69,8 +69,7 @@ class CFWL_NoteDriver {
std::vector<CFWL_Widget*> m_Forms;
std::deque<std::unique_ptr<CFWL_Message>> m_NoteQueue;
std::vector<CFWL_NoteLoop*> m_NoteLoopQueue;
- std::unordered_map<uint32_t, std::unique_ptr<CFWL_EventTarget>>
- m_eventTargets;
+ std::map<uint32_t, std::unique_ptr<CFWL_EventTarget>> m_eventTargets;
CFWL_Widget* m_pHover;
CFWL_Widget* m_pFocus;
CFWL_Widget* m_pGrab;
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp
index 4b0a398ae2..a1180e7b8e 100644
--- a/xfa/fxfa/parser/cxfa_document.cpp
+++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -345,7 +345,7 @@ void CXFA_Document::DoProtoMerge() {
return;
std::map<uint32_t, CXFA_Node*> mIDMap;
- std::unordered_set<CXFA_Node*> sUseNodes;
+ std::set<CXFA_Node*> sUseNodes;
CXFA_NodeIterator sIterator(pTemplateRoot);
for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode;
pNode = sIterator.MoveToNext()) {
diff --git a/xfa/fxfa/parser/cxfa_document.h b/xfa/fxfa/parser/cxfa_document.h
index 03586b6591..8491febdbf 100644
--- a/xfa/fxfa/parser/cxfa_document.h
+++ b/xfa/fxfa/parser/cxfa_document.h
@@ -9,7 +9,7 @@
#include <map>
#include <memory>
-#include <unordered_set>
+#include <set>
#include <vector>
#include "xfa/fxfa/fxfa.h"
@@ -120,7 +120,7 @@ class CXFA_Document {
std::unique_ptr<CScript_LogPseudoModel> m_pScriptLog;
std::unique_ptr<CScript_LayoutPseudoModel> m_pScriptLayout;
std::unique_ptr<CScript_SignaturePseudoModel> m_pScriptSignature;
- std::unordered_set<CXFA_Node*> m_PurgeNodes;
+ std::set<CXFA_Node*> m_PurgeNodes;
XFA_VERSION m_eCurVersionMode;
uint32_t m_dwDocFlags;
};
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 73fc88db8f..9fae4a43aa 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -8,7 +8,7 @@
#include <map>
#include <memory>
-#include <unordered_set>
+#include <set>
#include <utility>
#include <vector>
@@ -90,7 +90,7 @@ int32_t GetCount(CXFA_Node* pInstMgrNode) {
}
std::vector<CXFA_Node*> NodesSortedByDocumentIdx(
- const std::unordered_set<CXFA_Node*>& rgNodeSet) {
+ const std::set<CXFA_Node*>& rgNodeSet) {
if (rgNodeSet.empty())
return std::vector<CXFA_Node*>();
@@ -105,8 +105,7 @@ std::vector<CXFA_Node*> NodesSortedByDocumentIdx(
return rgNodeArray;
}
-using CXFA_NodeSetPair =
- std::pair<std::unordered_set<CXFA_Node*>, std::unordered_set<CXFA_Node*>>;
+using CXFA_NodeSetPair = std::pair<std::set<CXFA_Node*>, std::set<CXFA_Node*>>;
using CXFA_NodeSetPairMap =
std::map<uint32_t, std::unique_ptr<CXFA_NodeSetPair>>;
using CXFA_NodeSetPairMapMap =
@@ -129,8 +128,8 @@ CXFA_NodeSetPair* NodeSetPairForNode(CXFA_Node* pNode,
return (*pNodeSetPairMap)[dwNameHash].get();
}
-void ReorderDataNodes(const std::unordered_set<CXFA_Node*>& sSet1,
- const std::unordered_set<CXFA_Node*>& sSet2,
+void ReorderDataNodes(const std::set<CXFA_Node*>& sSet1,
+ const std::set<CXFA_Node*>& sSet2,
bool bInsertBefore) {
CXFA_NodeSetPairMapMap rgMap;
for (CXFA_Node* pNode : sSet1) {
@@ -231,8 +230,8 @@ void InsertItem(CXFA_Node* pInstMgrNode,
pInstMgrNode->GetNodeItem(XFA_NODEITEM_Parent)
->InsertChild(pNewInstance, pNextSibling);
if (bMoveDataBindingNodes) {
- std::unordered_set<CXFA_Node*> sNew;
- std::unordered_set<CXFA_Node*> sAfter;
+ std::set<CXFA_Node*> sNew;
+ std::set<CXFA_Node*> sAfter;
CXFA_NodeIteratorTemplate<CXFA_Node,
CXFA_TraverseStrategy_XFAContainerNode>
sIteratorNew(pNewInstance);
@@ -262,8 +261,8 @@ void InsertItem(CXFA_Node* pInstMgrNode,
pInstMgrNode->GetNodeItem(XFA_NODEITEM_Parent)
->InsertChild(pNewInstance, pBeforeInstance);
if (bMoveDataBindingNodes) {
- std::unordered_set<CXFA_Node*> sNew;
- std::unordered_set<CXFA_Node*> sBefore;
+ std::set<CXFA_Node*> sNew;
+ std::set<CXFA_Node*> sBefore;
CXFA_NodeIteratorTemplate<CXFA_Node,
CXFA_TraverseStrategy_XFAContainerNode>
sIteratorNew(pNewInstance);