diff --git a/xpcom/string/nsReadableUtils.cpp b/xpcom/string/nsReadableUtils.cpp index 2e14dab9c7d7..6576e6e5ebcc 100644 --- a/xpcom/string/nsReadableUtils.cpp +++ b/xpcom/string/nsReadableUtils.cpp @@ -1278,7 +1278,7 @@ EmptyCString() const nsString& NullString() { - static const nsXPIDLString sNull; + static const nsString sNull(mozilla::detail::StringDataFlags::VOIDED); return sNull; } diff --git a/xpcom/string/nsTString.h b/xpcom/string/nsTString.h index 5bd18a4d5c8f..027bf8797bcb 100644 --- a/xpcom/string/nsTString.h +++ b/xpcom/string/nsTString.h @@ -462,6 +462,15 @@ protected: { } + friend const nsTString_CharT& TNullString_CharT(); + + // Used by Null[C]String. + explicit nsTString_CharT(DataFlags aDataFlags) + : substring_type(char_traits::sEmptyBuffer, 0, + aDataFlags | DataFlags::TERMINATED, + ClassFlags::NULL_TERMINATED) + {} + struct Segment { uint32_t mBegin, mLength; Segment(uint32_t aBegin, uint32_t aLength) diff --git a/xpcom/string/string-template-def-char.h b/xpcom/string/string-template-def-char.h index f8a38ad5bfd3..614b1addec60 100644 --- a/xpcom/string/string-template-def-char.h +++ b/xpcom/string/string-template-def-char.h @@ -25,3 +25,4 @@ #define nsTPromiseFlatString_CharT nsPromiseFlatCString #define TPromiseFlatString_CharT PromiseFlatCString #define nsTSubstringSplitter_CharT nsCSubstringSplitter +#define TNullString_CharT NullCString diff --git a/xpcom/string/string-template-def-unichar.h b/xpcom/string/string-template-def-unichar.h index 2524b3b3f829..213a92ade919 100644 --- a/xpcom/string/string-template-def-unichar.h +++ b/xpcom/string/string-template-def-unichar.h @@ -25,3 +25,4 @@ #define nsTPromiseFlatString_CharT nsPromiseFlatString #define TPromiseFlatString_CharT PromiseFlatString #define nsTSubstringSplitter_CharT nsSubstringSplitter +#define TNullString_CharT NullString diff --git a/xpcom/string/string-template-undef.h b/xpcom/string/string-template-undef.h index f3c31e29c3f5..c277b1ec72b4 100644 --- a/xpcom/string/string-template-undef.h +++ b/xpcom/string/string-template-undef.h @@ -26,3 +26,4 @@ #undef nsTPromiseFlatString_CharT #undef TPromiseFlatString_CharT #undef nsTSubstringSplitter_CharT +#undef TNullString_CharT