Avoid c_str() calls as possible in CXFA_Document.
Change-Id: I45ef483ad3c56e34bfd7bd4936aec98b81d7af15
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/86830
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp
index 4b2c25b..0ea2395 100644
--- a/xfa/fxfa/parser/cxfa_document.cpp
+++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -1481,7 +1481,7 @@
return XFA_VERSION_UNKNOWN;
size_t prefixLength = wsTemplateURIPrefix.GetLength();
- if (WideStringView(wsTemplateNS.c_str(), prefixLength) != wsTemplateURIPrefix)
+ if (wsTemplateNS.AsStringView().First(prefixLength) != wsTemplateURIPrefix)
return XFA_VERSION_UNKNOWN;
auto nDotPos = wsTemplateNS.Find('.', prefixLength);
@@ -1603,17 +1603,17 @@
wsURI = wsUseVal.AsStringView();
return;
}
- wsURI = WideStringView(wsUseVal.c_str(), uSharpPos.value());
+ wsURI = wsUseVal.AsStringView().First(uSharpPos.value());
size_t uLen = wsUseVal.GetLength();
if (uLen >= uSharpPos.value() + 5 &&
- WideStringView(wsUseVal.c_str() + uSharpPos.value(), 5) == L"#som(" &&
+ wsUseVal.AsStringView().Substr(uSharpPos.value(), 5) == L"#som(" &&
wsUseVal[uLen - 1] == ')') {
- wsSOM = WideStringView(wsUseVal.c_str() + uSharpPos.value() + 5,
- uLen - 1 - uSharpPos.value() - 5);
+ wsSOM = wsUseVal.AsStringView().Substr(uSharpPos.value() + 5,
+ uLen - 1 - uSharpPos.value() - 5);
return;
}
- wsID = WideStringView(wsUseVal.c_str() + uSharpPos.value() + 1,
- uLen - uSharpPos.value() - 1);
+ wsID = wsUseVal.AsStringView().Substr(uSharpPos.value() + 1,
+ uLen - uSharpPos.value() - 1);
}
// static
@@ -1624,10 +1624,10 @@
return;
if (wsUseVal[0] == '#') {
- wsID = WideStringView(wsUseVal.c_str() + 1, wsUseVal.GetLength() - 1);
+ wsID = wsUseVal.AsStringView().Substr(1, wsUseVal.GetLength() - 1);
return;
}
- wsSOM = WideStringView(wsUseVal.c_str(), wsUseVal.GetLength());
+ wsSOM = wsUseVal.AsStringView();
}
CXFA_Node* CXFA_Document::DataMerge_CopyContainer(CXFA_Node* pTemplateNode,