diff options
author | weili <weili@chromium.org> | 2016-07-11 14:43:40 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-07-11 14:43:41 -0700 |
commit | 5a6c1398d0e559fb6a048cb0dca46ba9f9309a77 (patch) | |
tree | 40193eaf374d0f9bf2ec2f257871279b0f36efb8 /core/fpdfdoc/cpvt_sectioninfo.h | |
parent | ac14258c429141653f73ca5c1b64ad259ac15804 (diff) | |
download | pdfium-5a6c1398d0e559fb6a048cb0dca46ba9f9309a77.tar.xz |
Use smart pointers for class owned member variables
Replace raw member variables to smart pointer type to better
maintain the ownership and to ease the management.
BUG=pdfium:518
Review-Url: https://codereview.chromium.org/2136683002
Diffstat (limited to 'core/fpdfdoc/cpvt_sectioninfo.h')
-rw-r--r-- | core/fpdfdoc/cpvt_sectioninfo.h | 43 |
1 files changed, 9 insertions, 34 deletions
diff --git a/core/fpdfdoc/cpvt_sectioninfo.h b/core/fpdfdoc/cpvt_sectioninfo.h index e466ae5006..9d9b99fc27 100644 --- a/core/fpdfdoc/cpvt_sectioninfo.h +++ b/core/fpdfdoc/cpvt_sectioninfo.h @@ -7,48 +7,23 @@ #ifndef CORE_FPDFDOC_CPVT_SECTIONINFO_H_ #define CORE_FPDFDOC_CPVT_SECTIONINFO_H_ +#include <memory> + #include "core/fpdfdoc/cpvt_floatrect.h" #include "core/fpdfdoc/include/cpvt_secprops.h" #include "core/fpdfdoc/include/cpvt_wordprops.h" struct CPVT_SectionInfo { - CPVT_SectionInfo() - : rcSection(), nTotalLine(0), pSecProps(nullptr), pWordProps(nullptr) {} - - ~CPVT_SectionInfo() { - delete pSecProps; - delete pWordProps; - } - - CPVT_SectionInfo(const CPVT_SectionInfo& other) - : rcSection(), nTotalLine(0), pSecProps(nullptr), pWordProps(nullptr) { - operator=(other); - } - - void operator=(const CPVT_SectionInfo& other) { - if (this == &other) - return; - - rcSection = other.rcSection; - nTotalLine = other.nTotalLine; - if (other.pSecProps) { - if (pSecProps) - *pSecProps = *other.pSecProps; - else - pSecProps = new CPVT_SecProps(*other.pSecProps); - } - if (other.pWordProps) { - if (pWordProps) - *pWordProps = *other.pWordProps; - else - pWordProps = new CPVT_WordProps(*other.pWordProps); - } - } + CPVT_SectionInfo(); + CPVT_SectionInfo(const CPVT_SectionInfo& other); + ~CPVT_SectionInfo(); + + void operator=(const CPVT_SectionInfo& other); CPVT_FloatRect rcSection; int32_t nTotalLine; - CPVT_SecProps* pSecProps; - CPVT_WordProps* pWordProps; + std::unique_ptr<CPVT_SecProps> pSecProps; + std::unique_ptr<CPVT_WordProps> pWordProps; }; #endif // CORE_FPDFDOC_CPVT_SECTIONINFO_H_ |