commit 18a690cde4eb90dcb0754f8d5fd002829e58424e parent 57a1df1538fe6dc79beba5484e3973edc5dd5510 Author: serge-sans-paille <sguelton@mozilla.com> Date: Mon, 13 Oct 2025 05:37:18 +0000 Bug 1992934 - Optimize Token.Fragment() and Token.AsString() methods return type r=nika Returning a reference avoids a copy which is non trivial. It also makes lifetime analysis easier. Differential Revision: https://phabricator.services.mozilla.com/D267745 Diffstat:
| M | xpcom/ds/Tokenizer.cpp | | | 3 | ++- |
| M | xpcom/ds/Tokenizer.h | | | 4 | ++-- |
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/xpcom/ds/Tokenizer.cpp b/xpcom/ds/Tokenizer.cpp @@ -785,7 +785,8 @@ TChar TokenizerBase<TChar>::Token::AsChar() const { } template <typename TChar> -auto TokenizerBase<TChar>::Token::AsString() const -> TDependentSubstring { +auto TokenizerBase<TChar>::Token::AsString() const + -> const TDependentSubstring& { MOZ_ASSERT(mType == TOKEN_WORD); return mWord; } diff --git a/xpcom/ds/Tokenizer.h b/xpcom/ds/Tokenizer.h @@ -91,10 +91,10 @@ class TokenizerBase { TokenType Type() const { return mType; } TChar AsChar() const; - TDependentSubstring AsString() const; + TDependentSubstring const& AsString() const; uint64_t AsInteger() const; - TDependentSubstring Fragment() const { return mFragment; } + TDependentSubstring const& Fragment() const { return mFragment; } }; /**