summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2016-03-09 17:37:12 -0800
committerTom Sepez <tsepez@chromium.org>2016-03-09 17:37:12 -0800
commit99406198ac4921a53425edc73cac67e7b4760895 (patch)
treed2f2411dad87d84001202e9a04bb2ed60b725683 /core
parent520f247443253356b0ce236066fce95e7fad7680 (diff)
downloadpdfium-99406198ac4921a53425edc73cac67e7b4760895.tar.xz
Move ScopedSetInsertion to third_party/base/stl_util.h
Also move ScopedFileStream, since it isn't specific to the parser, and belongs with the fxcrt object it manipulates. R=ochang@chromium.org Review URL: https://codereview.chromium.org/1780063003 .
Diffstat (limited to 'core')
-rw-r--r--core/include/fpdfapi/fpdf_parser.h19
-rw-r--r--core/include/fxcrt/fx_ext.h6
-rw-r--r--core/src/fpdfapi/fpdf_parser/cpdf_document.cpp3
-rw-r--r--core/src/fpdfapi/fpdf_parser/cpdf_parser.cpp2
-rw-r--r--core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp1
5 files changed, 10 insertions, 21 deletions
diff --git a/core/include/fpdfapi/fpdf_parser.h b/core/include/fpdfapi/fpdf_parser.h
index 7d7243c90f..705587c513 100644
--- a/core/include/fpdfapi/fpdf_parser.h
+++ b/core/include/fpdfapi/fpdf_parser.h
@@ -42,25 +42,6 @@ class IPDF_SecurityHandler;
#define FPDFPERM_PRINT_HIGH 0x0800
#define FPDF_PAGE_MAX_NUM 0xFFFFF
-// TODO(thestig) Using unique_ptr with ReleaseDeleter is still not ideal.
-// Come up or wait for something better.
-using ScopedFileStream =
- std::unique_ptr<IFX_FileStream, ReleaseDeleter<IFX_FileStream>>;
-
-template <typename T>
-class ScopedSetInsertion {
- public:
- ScopedSetInsertion(std::set<T>* org_set, T elem)
- : m_Set(org_set), m_Entry(elem) {
- m_Set->insert(m_Entry);
- }
- ~ScopedSetInsertion() { m_Set->erase(m_Entry); }
-
- private:
- std::set<T>* const m_Set;
- const T m_Entry;
-};
-
// Indexed by 8-bit char code, contains unicode code points.
extern const FX_WORD PDFDocEncoding[256];
diff --git a/core/include/fxcrt/fx_ext.h b/core/include/fxcrt/fx_ext.h
index c8afb2b793..689d8e8fc4 100644
--- a/core/include/fxcrt/fx_ext.h
+++ b/core/include/fxcrt/fx_ext.h
@@ -12,6 +12,12 @@
#include "core/include/fxcrt/fx_basic.h"
+// TODO(thestig) Using unique_ptr with ReleaseDeleter is still not ideal.
+// Come up or wait for something better. This appears in this file rather
+// than fx_stream.h due to include ordering restrictions.
+using ScopedFileStream =
+ std::unique_ptr<IFX_FileStream, ReleaseDeleter<IFX_FileStream>>;
+
FX_FLOAT FXSYS_tan(FX_FLOAT a);
FX_FLOAT FXSYS_logb(FX_FLOAT b, FX_FLOAT x);
FX_FLOAT FXSYS_strtof(const FX_CHAR* pcsStr,
diff --git a/core/src/fpdfapi/fpdf_parser/cpdf_document.cpp b/core/src/fpdfapi/fpdf_parser/cpdf_document.cpp
index d97d6e01ff..e509e36382 100644
--- a/core/src/fpdfapi/fpdf_parser/cpdf_document.cpp
+++ b/core/src/fpdfapi/fpdf_parser/cpdf_document.cpp
@@ -35,7 +35,8 @@ int CountPages(CPDF_Dictionary* pPages,
}
if (pKid->KeyExist("Kids")) {
// Use |visited_pages| to help detect circular references of pages.
- ScopedSetInsertion<CPDF_Dictionary*> local_add(visited_pages, pKid);
+ pdfium::ScopedSetInsertion<CPDF_Dictionary*> local_add(visited_pages,
+ pKid);
count += CountPages(pKid, visited_pages);
} else {
// This page is a leaf node.
diff --git a/core/src/fpdfapi/fpdf_parser/cpdf_parser.cpp b/core/src/fpdfapi/fpdf_parser/cpdf_parser.cpp
index 675eec8f3a..45d29f9351 100644
--- a/core/src/fpdfapi/fpdf_parser/cpdf_parser.cpp
+++ b/core/src/fpdfapi/fpdf_parser/cpdf_parser.cpp
@@ -1150,8 +1150,8 @@ CPDF_Object* CPDF_Parser::ParseIndirectObject(
// Prevent circular parsing the same object.
if (pdfium::ContainsKey(m_ParsingObjNums, objnum))
return nullptr;
- ScopedSetInsertion<FX_DWORD> local_insert(&m_ParsingObjNums, objnum);
+ pdfium::ScopedSetInsertion<FX_DWORD> local_insert(&m_ParsingObjNums, objnum);
if (GetObjectType(objnum) == 1 || GetObjectType(objnum) == 255) {
FX_FILESIZE pos = m_ObjectInfo[objnum].pos;
if (pos <= 0)
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp
index c8e1ceec0b..49521b0102 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp
@@ -8,6 +8,7 @@
#include "core/include/fpdfapi/cpdf_parser.h"
#include "core/include/fpdfapi/fpdf_parser.h"
#include "core/include/fxcrt/fx_stream.h"
+#include "core/include/fxcrt/fx_ext.h"
#include "core/src/fpdfapi/fpdf_parser/cpdf_syntax_parser.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/utils/path_service.h"