Avoid duplicate string construction in CXFA_Textlayout Found while removing c_str() calls, which are usually bad, but in this case needless. - Also remove a redundant assert, segv "for free" on next line. Change-Id: Ib5a704001abfc73b50a2a9dd6286a02928c65638 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/61710 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fgas/layout/cfx_linkuserdata.cpp b/xfa/fgas/layout/cfx_linkuserdata.cpp index 591d861..d452480 100644 --- a/xfa/fgas/layout/cfx_linkuserdata.cpp +++ b/xfa/fgas/layout/cfx_linkuserdata.cpp
@@ -6,7 +6,7 @@ #include "xfa/fgas/layout/cfx_linkuserdata.h" -CFX_LinkUserData::CFX_LinkUserData(const wchar_t* pszText) - : m_wsURLContent(pszText) {} +CFX_LinkUserData::CFX_LinkUserData(const WideString& wsText) + : m_wsURLContent(wsText) {} CFX_LinkUserData::~CFX_LinkUserData() {}
diff --git a/xfa/fgas/layout/cfx_linkuserdata.h b/xfa/fgas/layout/cfx_linkuserdata.h index 6f23b0e..83b43a2 100644 --- a/xfa/fgas/layout/cfx_linkuserdata.h +++ b/xfa/fgas/layout/cfx_linkuserdata.h
@@ -19,7 +19,7 @@ const wchar_t* GetLinkURL() const { return m_wsURLContent.c_str(); } private: - explicit CFX_LinkUserData(const wchar_t* pszText); + explicit CFX_LinkUserData(const WideString& wsText); ~CFX_LinkUserData() override; WideString m_wsURLContent;
diff --git a/xfa/fxfa/cxfa_textlayout.cpp b/xfa/fxfa/cxfa_textlayout.cpp index 9772f5d..d118882 100644 --- a/xfa/fxfa/cxfa_textlayout.cpp +++ b/xfa/fxfa/cxfa_textlayout.cpp
@@ -753,12 +753,9 @@ } if (wsName.EqualsASCII("a")) { - ASSERT(pElement); WideString wsLinkContent = pElement->GetAttribute(L"href"); - if (!wsLinkContent.IsEmpty()) { - pLinkData = - pdfium::MakeRetain<CFX_LinkUserData>(wsLinkContent.c_str()); - } + if (!wsLinkContent.IsEmpty()) + pLinkData = pdfium::MakeRetain<CFX_LinkUserData>(wsLinkContent); } int32_t iTabCount = m_textParser.CountTabs(