Better bounds check in CFGAS_StringFormatter::GetCategory() This allows the optimizer to remove the last implicit bounds check in span indexing in GetCategory() and astonishingly saves abou 36 bytes of generated code. Change-Id: I94692418def8d1db78d64d7c86451de64f1a9396 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/51951 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/xfa/fgas/crt/cfgas_stringformatter.cpp b/xfa/fgas/crt/cfgas_stringformatter.cpp index fff66e0..156d068 100644 --- a/xfa/fgas/crt/cfgas_stringformatter.cpp +++ b/xfa/fgas/crt/cfgas_stringformatter.cpp
@@ -859,7 +859,7 @@ WideString wsCategory(m_spPattern[ccf]); ccf++; while (true) { - if (ccf == m_spPattern.size()) + if (ccf >= m_spPattern.size()) return eCategory; if (m_spPattern[ccf] == '.' || m_spPattern[ccf] == '(') break; @@ -870,7 +870,6 @@ wsCategory += m_spPattern[ccf]; ccf++; } - uint32_t dwHash = FX_HashCode_GetW(wsCategory.AsStringView(), false); if (dwHash == FX_LOCALECATEGORY_DateTimeHash) return FX_LOCALECATEGORY_DateTime;