diff options
author | tsepez <tsepez@chromium.org> | 2016-04-21 10:43:39 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-21 10:43:39 -0700 |
commit | 691411873cb16eb82d5912d0f73b96310f632932 (patch) | |
tree | c6d80564123ad2768eebd165fe286a4854b5dce0 /core/fpdftext/include/cpdf_linkextract.h | |
parent | fc397dc66c0a5f02f4bb4558423d4d647f567308 (diff) | |
download | pdfium-691411873cb16eb82d5912d0f73b96310f632932.tar.xz |
Remove CFX_ArrayTemplate from CPDF_LinkExtract
Use unqiue_ptrs while we're at it, also better ctor.
Review URL: https://codereview.chromium.org/1896303002
Diffstat (limited to 'core/fpdftext/include/cpdf_linkextract.h')
-rw-r--r-- | core/fpdftext/include/cpdf_linkextract.h | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/core/fpdftext/include/cpdf_linkextract.h b/core/fpdftext/include/cpdf_linkextract.h index 263768ee5d..4f9537c799 100644 --- a/core/fpdftext/include/cpdf_linkextract.h +++ b/core/fpdftext/include/cpdf_linkextract.h @@ -7,6 +7,8 @@ #ifndef CORE_FPDFTEXT_INCLUDE_CPDF_LINKEXTRACT_H_ #define CORE_FPDFTEXT_INCLUDE_CPDF_LINKEXTRACT_H_ +#include <vector> + #include "core/fxcrt/include/fx_basic.h" #include "core/fxcrt/include/fx_coordinates.h" #include "core/fxcrt/include/fx_string.h" @@ -14,41 +16,31 @@ class CPDF_TextPage; -class CPDF_LinkExt { - public: - CPDF_LinkExt() {} - ~CPDF_LinkExt() {} - - int m_Start; - int m_Count; - CFX_WideString m_strUrl; -}; - class CPDF_LinkExtract { public: - CPDF_LinkExtract(); + explicit CPDF_LinkExtract(const CPDF_TextPage* pTextPage); ~CPDF_LinkExtract(); - FX_BOOL ExtractLinks(const CPDF_TextPage* pTextPage); - int CountLinks() const; - CFX_WideString GetURL(int index) const; - void GetBoundedSegment(int index, int& start, int& count) const; - void GetRects(int index, CFX_RectArray& rects) const; - - FX_BOOL IsExtract() const { return m_bIsParsed; } + void ExtractLinks(); + size_t CountLinks() const { return m_LinkArray.size(); } + CFX_WideString GetURL(size_t index) const; + void GetRects(size_t index, CFX_RectArray* pRects) const; protected: void ParseLink(); - void DeleteLinkList(); - FX_BOOL CheckWebLink(CFX_WideString& strBeCheck); + bool CheckWebLink(CFX_WideString& str); bool CheckMailLink(CFX_WideString& str); - void AppendToLinkList(int start, int count, const CFX_WideString& strUrl); private: - CFX_ArrayTemplate<CPDF_LinkExt*> m_LinkList; - const CPDF_TextPage* m_pTextPage; + struct Link { + int m_Start; + int m_Count; + CFX_WideString m_strUrl; + }; + + const CPDF_TextPage* const m_pTextPage; CFX_WideString m_strPageText; - bool m_bIsParsed; + std::vector<Link> m_LinkArray; }; #endif // CORE_FPDFTEXT_INCLUDE_CPDF_LINKEXTRACT_H_ |