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(