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(
