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_wordinfo.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_wordinfo.h')
-rw-r--r-- | core/fpdfdoc/cpvt_wordinfo.h | 53 |
1 files changed, 8 insertions, 45 deletions
diff --git a/core/fpdfdoc/cpvt_wordinfo.h b/core/fpdfdoc/cpvt_wordinfo.h index 1ab0df21af..c690e2aa7b 100644 --- a/core/fpdfdoc/cpvt_wordinfo.h +++ b/core/fpdfdoc/cpvt_wordinfo.h @@ -7,58 +7,21 @@ #ifndef CORE_FPDFDOC_CPVT_WORDINFO_H_ #define CORE_FPDFDOC_CPVT_WORDINFO_H_ +#include <memory> + #include "core/fpdfdoc/include/cpvt_wordprops.h" #include "core/fxcrt/include/fx_system.h" struct CPVT_WordInfo { - CPVT_WordInfo() - : Word(0), - nCharset(FXFONT_ANSI_CHARSET), - fWordX(0.0f), - fWordY(0.0f), - fWordTail(0.0f), - nFontIndex(-1), - pWordProps(nullptr) {} - + CPVT_WordInfo(); CPVT_WordInfo(uint16_t word, int32_t charset, int32_t fontIndex, - CPVT_WordProps* pProps) - : Word(word), - nCharset(charset), - fWordX(0.0f), - fWordY(0.0f), - fWordTail(0.0f), - nFontIndex(fontIndex), - pWordProps(pProps) {} - - CPVT_WordInfo(const CPVT_WordInfo& word) - : Word(0), - nCharset(FXFONT_ANSI_CHARSET), - fWordX(0.0f), - fWordY(0.0f), - fWordTail(0.0f), - nFontIndex(-1), - pWordProps(nullptr) { - operator=(word); - } - - ~CPVT_WordInfo() { delete pWordProps; } - - void operator=(const CPVT_WordInfo& word) { - if (this == &word) - return; + CPVT_WordProps* pProps); + CPVT_WordInfo(const CPVT_WordInfo& word); + ~CPVT_WordInfo(); - Word = word.Word; - nCharset = word.nCharset; - nFontIndex = word.nFontIndex; - if (word.pWordProps) { - if (pWordProps) - *pWordProps = *word.pWordProps; - else - pWordProps = new CPVT_WordProps(*word.pWordProps); - } - } + void operator=(const CPVT_WordInfo& word); uint16_t Word; int32_t nCharset; @@ -66,7 +29,7 @@ struct CPVT_WordInfo { FX_FLOAT fWordY; FX_FLOAT fWordTail; int32_t nFontIndex; - CPVT_WordProps* pWordProps; + std::unique_ptr<CPVT_WordProps> pWordProps; }; #endif // CORE_FPDFDOC_CPVT_WORDINFO_H_ |