Avoid more .c_str() usage, part 3

Change-Id: I5dfadcb68e640235be6e3eb7c8d57ae3b8013d26
Reviewed-on: https://pdfium-review.googlesource.com/35691
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/font/cpdf_cmapmanager.cpp b/core/fpdfapi/font/cpdf_cmapmanager.cpp
index 53183af..62a2013 100644
--- a/core/fpdfapi/font/cpdf_cmapmanager.cpp
+++ b/core/fpdfapi/font/cpdf_cmapmanager.cpp
@@ -29,15 +29,13 @@
   return pCMap;
 }
 
-RetainPtr<CPDF_CMap> CPDF_CMapManager::LoadPredefinedCMap(
-    const ByteString& name,
-    bool bPromptCJK) {
-  const char* pname = name.c_str();
-  if (*pname == '/')
-    pname++;
+RetainPtr<CPDF_CMap> CPDF_CMapManager::LoadPredefinedCMap(ByteString name,
+                                                          bool bPromptCJK) {
+  if (!name.IsEmpty() && name[0] == '/')
+    name = name.Right(name.GetLength() - 1);
 
   auto pCMap = pdfium::MakeRetain<CPDF_CMap>();
-  pCMap->LoadPredefined(this, pname, bPromptCJK);
+  pCMap->LoadPredefined(this, name, bPromptCJK);
   return pCMap;
 }
 
diff --git a/core/fpdfapi/font/cpdf_cmapmanager.h b/core/fpdfapi/font/cpdf_cmapmanager.h
index 089eb3d..47a0be0 100644
--- a/core/fpdfapi/font/cpdf_cmapmanager.h
+++ b/core/fpdfapi/font/cpdf_cmapmanager.h
@@ -24,8 +24,7 @@
   CPDF_CID2UnicodeMap* GetCID2UnicodeMap(CIDSet charset, bool bPromptCJK);
 
  private:
-  RetainPtr<CPDF_CMap> LoadPredefinedCMap(const ByteString& name,
-                                          bool bPromptCJK);
+  RetainPtr<CPDF_CMap> LoadPredefinedCMap(ByteString name, bool bPromptCJK);
   std::unique_ptr<CPDF_CID2UnicodeMap> LoadCID2UnicodeMap(CIDSet charset,
                                                           bool bPromptCJK);
 
diff --git a/core/fpdftext/cpdf_textpagefind.cpp b/core/fpdftext/cpdf_textpagefind.cpp
index 62bc3cb..19ae58a 100644
--- a/core/fpdftext/cpdf_textpagefind.cpp
+++ b/core/fpdftext/cpdf_textpagefind.cpp
@@ -161,7 +161,7 @@
       }
       continue;
     }
-    nResultPos = m_strText.Find(csWord.c_str(), nStartPos);
+    nResultPos = m_strText.Find(csWord.AsStringView(), nStartPos);
     if (!nResultPos.has_value()) {
       m_IsFind = false;
       return m_IsFind;
diff --git a/core/fxcrt/css/cfx_cssrulecollection.cpp b/core/fxcrt/css/cfx_cssrulecollection.cpp
index 2030518..f525821 100644
--- a/core/fxcrt/css/cfx_cssrulecollection.cpp
+++ b/core/fxcrt/css/cfx_cssrulecollection.cpp
@@ -29,7 +29,7 @@
 
 const std::vector<std::unique_ptr<CFX_CSSRuleCollection::Data>>*
 CFX_CSSRuleCollection::GetTagRuleData(const WideString& tagname) const {
-  auto it = m_TagRules.find(FX_HashCode_GetW(tagname.c_str(), true));
+  auto it = m_TagRules.find(FX_HashCode_GetW(tagname.AsStringView(), true));
   return it != m_TagRules.end() ? &it->second : nullptr;
 }
 
diff --git a/core/fxcrt/css/cfx_cssstyleselector.cpp b/core/fxcrt/css/cfx_cssstyleselector.cpp
index 4a47798..9b1a223 100644
--- a/core/fxcrt/css/cfx_cssstyleselector.cpp
+++ b/core/fxcrt/css/cfx_cssstyleselector.cpp
@@ -75,7 +75,7 @@
       pSel->GetType() == CFX_CSSSelectorType::Descendant) {
     return false;
   }
-  return pSel->GetNameHash() == FX_HashCode_GetW(tagname.c_str(), true);
+  return pSel->GetNameHash() == FX_HashCode_GetW(tagname.AsStringView(), true);
 }
 
 void CFX_CSSStyleSelector::ComputeStyle(
diff --git a/fxjs/cjs_util.cpp b/fxjs/cjs_util.cpp
index fec7273..3889f5a 100644
--- a/fxjs/cjs_util.cpp
+++ b/fxjs/cjs_util.cpp
@@ -183,7 +183,7 @@
         return CJS_Return(JSMessage::kValueError);
     }
 
-    return CJS_Return(pRuntime->NewString(swResult.c_str()));
+    return CJS_Return(pRuntime->NewString(swResult.AsStringView()));
   }
 
   if (params[0]->IsString()) {
@@ -259,7 +259,7 @@
   return CJS_Return(
       pRuntime->NewString(printx(pRuntime->ToWideString(params[0]),
                                  pRuntime->ToWideString(params[1]))
-                              .c_str()));
+                              .AsStringView()));
 }
 
 enum CaseMode { kPreserveCase, kUpperCase, kLowerCase };
diff --git a/fxjs/xfa/cjx_packet.cpp b/fxjs/xfa/cjx_packet.cpp
index e4119ba..b27cfba 100644
--- a/fxjs/xfa/cjx_packet.cpp
+++ b/fxjs/xfa/cjx_packet.cpp
@@ -38,7 +38,7 @@
   CFX_XMLNode* pXMLNode = GetXFANode()->GetXMLMappingNode();
   if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
     attributeValue = static_cast<CFX_XMLElement*>(pXMLNode)->GetAttribute(
-        runtime->ToWideString(params[0]).c_str());
+        runtime->ToWideString(params[0]));
   }
   return CJS_Return(
       runtime->NewString(attributeValue.UTF8Encode().AsStringView()));
@@ -68,8 +68,8 @@
   if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
     WideString name = runtime->ToWideString(params[0]);
     CFX_XMLElement* pXMLElement = static_cast<CFX_XMLElement*>(pXMLNode);
-    if (pXMLElement->HasAttribute(name.c_str()))
-      pXMLElement->RemoveAttribute(name.c_str());
+    if (pXMLElement->HasAttribute(name))
+      pXMLElement->RemoveAttribute(name);
   }
   return CJS_Return(runtime->NewNull());
 }
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index 59d4563..5ab91b3 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -690,11 +690,10 @@
     } else {
       nPenalty -= 30000;
     }
-    if (30000 == nPenalty &&
-        0 == IsPartName(pInstalled->m_wsFaceName, FontName)) {
+    if (nPenalty == 30000 && !IsPartName(pInstalled->m_wsFaceName, FontName)) {
       size_t i;
       for (i = 0; i < pInstalled->m_wsFamilyNames.size(); i++) {
-        if (IsPartName(pInstalled->m_wsFamilyNames[i], FontName) != 0)
+        if (IsPartName(pInstalled->m_wsFamilyNames[i], FontName))
           break;
       }
       if (i == pInstalled->m_wsFamilyNames.size())
@@ -884,11 +883,9 @@
   CSB[1] = pOS2->ulCodePageRange2;
 }
 
-int32_t CFGAS_FontMgr::IsPartName(const WideString& Name1,
-                                  const WideString& Name2) {
-  if (Name1.Contains(Name2.c_str()))
-    return 1;
-  return 0;
+bool CFGAS_FontMgr::IsPartName(const WideString& name1,
+                               const WideString& name2) {
+  return name1.Contains(name2.AsStringView());
 }
 
 #endif  // _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_
diff --git a/xfa/fgas/font/cfgas_fontmgr.h b/xfa/fgas/font/cfgas_fontmgr.h
index f082b02..5a1e9ba 100644
--- a/xfa/fgas/font/cfgas_fontmgr.h
+++ b/xfa/fgas/font/cfgas_fontmgr.h
@@ -160,7 +160,7 @@
   void GetUSBCSB(FXFT_Face pFace, uint32_t* USB, uint32_t* CSB);
   uint32_t GetFlags(FXFT_Face pFace);
   bool VerifyUnicode(CFX_FontDescriptor* pDesc, wchar_t wcUnicode);
-  int32_t IsPartName(const WideString& Name1, const WideString& Name2);
+  bool IsPartName(const WideString& name1, const WideString& name2);
   void MatchFonts(std::vector<CFX_FontDescriptorInfo>* MatchedFonts,
                   uint16_t wCodePage,
                   uint32_t dwFontStyles,