bool nsTSubstring_CharT::Assign( const substring_tuple_type& tuple, const fallible_t& ) { if (tuple.IsDependentOn(mData, mData + mLength)) { // take advantage of sharing here... return Assign(string_type(tuple), fallible_t()); } size_type length = tuple.Length(); // don't use ReplacePrep here because it changes the length char_type* oldData; uint32_t oldFlags; if (!MutatePrep(length, &oldData, &oldFlags)) return false; if (oldData) ::ReleaseData(oldData, oldFlags); tuple.WriteTo(mData, length); mData[length] = 0; mLength = length; return true; }
void nsTSubstring_CharT::Assign(const substring_tuple_type& aTuple) { if (!Assign(aTuple, fallible_t())) { NS_ABORT_OOM(aTuple.Length()); } }
void nsTSubstring_CharT::Assign(const substring_tuple_type& aTuple) { if (!Assign(aTuple, fallible_t())) { AllocFailed(aTuple.Length()); } }
void nsTSubstring_CharT::Replace( index_type cutStart, size_type cutLength, const substring_tuple_type& tuple ) { if (tuple.IsDependentOn(mData, mData + mLength)) { nsTAutoString_CharT temp(tuple); Replace(cutStart, cutLength, temp); return; } size_type length = tuple.Length(); cutStart = XPCOM_MIN(cutStart, Length()); if (ReplacePrep(cutStart, cutLength, length) && length > 0) tuple.WriteTo(mData + cutStart, length); }
void nsTSubstring_CharT::Assign( const substring_tuple_type& tuple ) { if (tuple.IsDependentOn(mData, mData + mLength)) { // take advantage of sharing here... Assign(string_type(tuple)); return; } size_type length = tuple.Length(); // don't use ReplacePrep here because it changes the length char_type* oldData; PRUint32 oldFlags; if (MutatePrep(length, &oldData, &oldFlags)) { if (oldData) ::ReleaseData(oldData, oldFlags); tuple.WriteTo(mData, length); mData[length] = 0; mLength = length; } }