diff options
author | tsepez <tsepez@chromium.org> | 2016-09-21 13:30:29 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-21 13:30:29 -0700 |
commit | 17103b84ebde9ab2b05dff38d473b5d44f723ff2 (patch) | |
tree | d200ac5050cfbb2454bacbef3a97b2c89c542183 /core/fpdfapi/fpdf_page/cpdf_contentmarkitem.h | |
parent | c0f60dc29db66262bbc0082fcd51170a570b0d1f (diff) | |
download | pdfium-17103b84ebde9ab2b05dff38d473b5d44f723ff2.tar.xz |
Make ownership explicit in CPDF_ContentMarkItem.
The old SetParam() method had "maybe take ownership" semanitcs
based upon the type argument.
Make GetParam() handle the None case and simplify callers
based upon that behaviour.
Review-Url: https://codereview.chromium.org/2358043003
Diffstat (limited to 'core/fpdfapi/fpdf_page/cpdf_contentmarkitem.h')
-rw-r--r-- | core/fpdfapi/fpdf_page/cpdf_contentmarkitem.h | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/core/fpdfapi/fpdf_page/cpdf_contentmarkitem.h b/core/fpdfapi/fpdf_page/cpdf_contentmarkitem.h index f46592d0a7..d5148af6da 100644 --- a/core/fpdfapi/fpdf_page/cpdf_contentmarkitem.h +++ b/core/fpdfapi/fpdf_page/cpdf_contentmarkitem.h @@ -7,6 +7,9 @@ #ifndef CORE_FPDFAPI_FPDF_PAGE_CPDF_CONTENTMARKITEM_H_ #define CORE_FPDFAPI_FPDF_PAGE_CPDF_CONTENTMARKITEM_H_ +#include <memory> + +#include "core/fxcrt/include/fx_memory.h" #include "core/fxcrt/include/fx_string.h" #include "core/fxcrt/include/fx_system.h" @@ -17,23 +20,27 @@ class CPDF_ContentMarkItem { enum ParamType { None, PropertiesDict, DirectDict }; CPDF_ContentMarkItem(); - CPDF_ContentMarkItem(const CPDF_ContentMarkItem& src); + CPDF_ContentMarkItem(const CPDF_ContentMarkItem& that); ~CPDF_ContentMarkItem(); - const CFX_ByteString& GetName() const { return m_MarkName; } + CPDF_ContentMarkItem& operator=(CPDF_ContentMarkItem&& other) = default; + + CFX_ByteString GetName() const { return m_MarkName; } ParamType GetParamType() const { return m_ParamType; } - CPDF_Dictionary* GetParam() const { return m_pParam; } + CPDF_Dictionary* GetParam() const; FX_BOOL HasMCID() const; + void SetName(const CFX_ByteString& name) { m_MarkName = name; } - void SetParam(ParamType type, CPDF_Dictionary* param) { - m_ParamType = type; - m_pParam = param; - } + void SetDirectDict( + std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Dictionary>> pDict); + void SetPropertiesDict(CPDF_Dictionary* pDict); private: CFX_ByteString m_MarkName; ParamType m_ParamType; - CPDF_Dictionary* m_pParam; + CPDF_Dictionary* m_pPropertiesDict; // not owned. + std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Dictionary>> + m_pDirectDict; }; #endif // CORE_FPDFAPI_FPDF_PAGE_CPDF_CONTENTMARKITEM_H_ |