diff options
| author | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-05-24 03:25:28 +0200 | 
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-05-24 13:55:38 +0300 | 
| commit | 2696b3de088877c3a406e817ed232c252700a16c (patch) | |
| tree | f58753bc008245c035813ddf05806bc0366a6ed9 | |
| parent | 6377610f6587989c126b00f490dfc8d527a1c2ce (diff) | |
Introduce LLWStringView to prevent unnecessary memory allocations
| -rw-r--r-- | indra/llcommon/llstring.cpp | 2 | ||||
| -rw-r--r-- | indra/llcommon/llstring.h | 3 | ||||
| -rw-r--r-- | indra/newview/llfloaterimsessiontab.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llfloaterimsessiontab.h | 2 | 
4 files changed, 6 insertions, 5 deletions
| diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp index bbb6aa2c20..5df0f8702d 100644 --- a/indra/llcommon/llstring.cpp +++ b/indra/llcommon/llstring.cpp @@ -758,7 +758,7 @@ std::string utf8str_showBytesUTF8(const std::string& utf8str)  }  // Search for any emoji symbol, return true if found -bool wstring_has_emoji(const LLWString& wstr) +bool wstring_has_emoji(LLWStringView wstr)  {      for (const llwchar& wch : wstr)      { diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h index 61d698687a..123f4184b5 100644 --- a/indra/llcommon/llstring.h +++ b/indra/llcommon/llstring.h @@ -448,6 +448,7 @@ template<class T> std::string LLStringUtilBase<T>::sLocale;  typedef LLStringUtilBase<char> LLStringUtil;  typedef LLStringUtilBase<llwchar> LLWStringUtil;  typedef std::basic_string<llwchar> LLWString; +typedef std::basic_string_view<llwchar> LLWStringView;  //@ Use this where we want to disallow input in the form of "foo"  //  This is used to catch places where english text is embedded in the code @@ -749,7 +750,7 @@ LL_COMMON_API llwchar utf8str_to_wchar(const std::string& utf8str, size_t offset  LL_COMMON_API std::string utf8str_showBytesUTF8(const std::string& utf8str); -LL_COMMON_API bool wstring_has_emoji(const LLWString& wstr); +LL_COMMON_API bool wstring_has_emoji(LLWStringView wstr);  LL_COMMON_API bool wstring_remove_emojis(LLWString& wstr); diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp index 81a4f9936c..a0b56b14f0 100644 --- a/indra/newview/llfloaterimsessiontab.cpp +++ b/indra/newview/llfloaterimsessiontab.cpp @@ -587,13 +587,13 @@ void LLFloaterIMSessionTab::appendMessage(const LLChat& chat, const LLSD& args)      mChatHistory->appendMessage(chat, chat_args);  } -void LLFloaterIMSessionTab::updateUsedEmojis(LLWString text) +void LLFloaterIMSessionTab::updateUsedEmojis(LLWStringView text)  {      LLEmojiDictionary* dictionary = LLEmojiDictionary::getInstance();      llassert_always(dictionary);      bool emojiSent = false; -    for (llwchar& c : text) +    for (const llwchar& c : text)      {          if (dictionary->isEmoji(c))          { diff --git a/indra/newview/llfloaterimsessiontab.h b/indra/newview/llfloaterimsessiontab.h index f1773520af..0a8502cfc5 100644 --- a/indra/newview/llfloaterimsessiontab.h +++ b/indra/newview/llfloaterimsessiontab.h @@ -147,7 +147,7 @@ protected:      std::string appendTime();      void assignResizeLimits(); -    void updateUsedEmojis(LLWString text); +    void updateUsedEmojis(LLWStringView text);      S32  mFloaterExtraWidth; | 
