diff options
author | tsepez <tsepez@chromium.org> | 2016-09-20 12:02:32 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-20 12:02:32 -0700 |
commit | 5b7c9bbf6c26ca272706814ad3598894ce5e4e3b (patch) | |
tree | c70a3495741e94684e45c10d6d0fbe06306fda06 /core/fpdfapi/fpdf_parser/include | |
parent | a6df44456956914e86b9d9af722b30628c45f208 (diff) | |
download | pdfium-5b7c9bbf6c26ca272706814ad3598894ce5e4e3b.tar.xz |
Re-land "Make CPDF_IndirectObjectHolder use unique_ptr to objects""
This reverts commit 81e1e3fd2d33478733e47bd007b76fac1a663e74.
Review-Url: https://codereview.chromium.org/2353013003
Diffstat (limited to 'core/fpdfapi/fpdf_parser/include')
-rw-r--r-- | core/fpdfapi/fpdf_parser/include/cpdf_indirect_object_holder.h | 9 | ||||
-rw-r--r-- | core/fpdfapi/fpdf_parser/include/cpdf_object.h | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/core/fpdfapi/fpdf_parser/include/cpdf_indirect_object_holder.h b/core/fpdfapi/fpdf_parser/include/cpdf_indirect_object_holder.h index 57dafb0528..2abbda2a36 100644 --- a/core/fpdfapi/fpdf_parser/include/cpdf_indirect_object_holder.h +++ b/core/fpdfapi/fpdf_parser/include/cpdf_indirect_object_holder.h @@ -8,6 +8,7 @@ #define CORE_FPDFAPI_FPDF_PARSER_INCLUDE_CPDF_INDIRECT_OBJECT_HOLDER_H_ #include <map> +#include <memory> #include "core/fxcrt/include/fx_system.h" @@ -15,8 +16,8 @@ class CPDF_Object; class CPDF_IndirectObjectHolder { public: - using iterator = std::map<uint32_t, CPDF_Object*>::iterator; - using const_iterator = std::map<uint32_t, CPDF_Object*>::const_iterator; + using const_iterator = + std::map<uint32_t, std::unique_ptr<CPDF_Object>>::const_iterator; CPDF_IndirectObjectHolder(); virtual ~CPDF_IndirectObjectHolder(); @@ -33,9 +34,7 @@ class CPDF_IndirectObjectHolder { uint32_t GetLastObjNum() const { return m_LastObjNum; } void SetLastObjNum(uint32_t objnum) { m_LastObjNum = objnum; } - iterator begin() { return m_IndirectObjs.begin(); } const_iterator begin() const { return m_IndirectObjs.begin(); } - iterator end() { return m_IndirectObjs.end(); } const_iterator end() const { return m_IndirectObjs.end(); } protected: @@ -43,7 +42,7 @@ class CPDF_IndirectObjectHolder { private: uint32_t m_LastObjNum; - std::map<uint32_t, CPDF_Object*> m_IndirectObjs; + std::map<uint32_t, std::unique_ptr<CPDF_Object>> m_IndirectObjs; }; #endif // CORE_FPDFAPI_FPDF_PARSER_INCLUDE_CPDF_INDIRECT_OBJECT_HOLDER_H_ diff --git a/core/fpdfapi/fpdf_parser/include/cpdf_object.h b/core/fpdfapi/fpdf_parser/include/cpdf_object.h index 115ce02200..de14503bbb 100644 --- a/core/fpdfapi/fpdf_parser/include/cpdf_object.h +++ b/core/fpdfapi/fpdf_parser/include/cpdf_object.h @@ -7,6 +7,7 @@ #ifndef CORE_FPDFAPI_FPDF_PARSER_INCLUDE_CPDF_OBJECT_H_ #define CORE_FPDFAPI_FPDF_PARSER_INCLUDE_CPDF_OBJECT_H_ +#include <memory> #include <set> #include "core/fxcrt/include/fx_string.h" @@ -92,6 +93,7 @@ class CPDF_Object { friend class CPDF_Parser; friend class CPDF_Reference; friend class CPDF_Stream; + friend struct std::default_delete<CPDF_Object>; CPDF_Object() : m_ObjNum(0), m_GenNum(0) {} virtual ~CPDF_Object(); |