bug #'s 69940 and 69289: r=dbaron, sr=waterson. Fix parameters to, templatization of |Substring()|.

This commit is contained in:
scc%mozilla.org 2001-02-24 02:55:46 +00:00
Родитель fd3fb3379d
Коммит 64f1e22b83
6 изменённых файлов: 106 добавлений и 24 удалений

Просмотреть файл

@ -5074,7 +5074,7 @@ nsXULTemplateBuilder::ParseAttribute(const nsAReadableString& aAttributeValue,
else if (backup != mark && aTextCallback) {
// Okay, we've found a variable, and there's some vanilla
// text that's been buffered up. Flush it.
(*aTextCallback)(this, Substring(aAttributeValue, mark, backup), aClosure);
(*aTextCallback)(this, Substring(mark, backup), aClosure);
}
// Construct a substring that is the symbol we need to look up
@ -5100,14 +5100,14 @@ nsXULTemplateBuilder::ParseAttribute(const nsAReadableString& aAttributeValue,
if (c != PRUnichar('^'))
--iter;
(*aVariableCallback)(this, Substring(aAttributeValue, first, last), aClosure);
(*aVariableCallback)(this, Substring(first, last), aClosure);
mark = iter;
++mark;
}
if (backup != mark && aTextCallback) {
// If there's any text left over, then fire the text callback
(*aTextCallback)(this, Substring(aAttributeValue, mark, backup), aClosure);
(*aTextCallback)(this, Substring(mark, backup), aClosure);
}
}

Просмотреть файл

@ -135,7 +135,7 @@ nsAboutProtocolHandler::NewChannel(nsIURI* uri, nsIChannel* *result)
FindCharInReadable('?', begin, end); // moves begin to first '?' or to end
end = begin;
what.BeginReading(begin);
contractID.Append(Substring(NS_READABLE_CAST(char, what), begin, end));
contractID.Append(Substring(begin, end));
NS_WITH_SERVICE(nsIAboutModule, aboutMod, contractID.get(), &rv);
if (NS_SUCCEEDED(rv)) {

Просмотреть файл

@ -188,6 +188,13 @@ class nsReadingIterator
return mFragment;
}
const basic_nsAReadableString<CharT>&
string() const
{
NS_ASSERTION(mOwningString, "iterator not attached to a string (|mOwningString| == 0)");
return *mOwningString;
}
difference_type
size_forward() const
{
@ -1167,8 +1174,8 @@ class nsPromiseSubstring
// nothing else to do here
}
nsPromiseSubstring( const basic_nsAReadableString<CharT>& aString, const nsReadingIterator<CharT>& aStart, const nsReadingIterator<CharT>& aEnd )
: mString(aString)
nsPromiseSubstring( const nsReadingIterator<CharT>& aStart, const nsReadingIterator<CharT>& aEnd )
: mString(aStart.string())
{
nsReadingIterator<CharT> zeroPoint;
mString.BeginReading(zeroPoint);
@ -1278,18 +1285,32 @@ SameImplementation( const basic_nsAReadableString<CharT>& lhs, const basic_nsARe
return imp_tag && (imp_tag==rhs.Implementation());
}
template <class CharT>
nsPromiseSubstring<CharT>
Substring( const basic_nsAReadableString<CharT>& aString, PRUint32 aStartPos, PRUint32 aSubstringLength )
inline
nsPromiseSubstring<char>
Substring( const basic_nsAReadableString<char>& aString, PRUint32 aStartPos, PRUint32 aSubstringLength )
{
return nsPromiseSubstring<CharT>(aString, aStartPos, aSubstringLength);
return nsPromiseSubstring<char>(aString, aStartPos, aSubstringLength);
}
template <class CharT>
nsPromiseSubstring<CharT>
Substring( const basic_nsAReadableString<CharT>& aString, const nsReadingIterator<CharT>& aStart, const nsReadingIterator<CharT>& aEnd )
inline
nsPromiseSubstring<PRUnichar>
Substring( const basic_nsAReadableString<PRUnichar>& aString, PRUint32 aStartPos, PRUint32 aSubstringLength )
{
return nsPromiseSubstring<CharT>(aString, aStart, aEnd);
return nsPromiseSubstring<PRUnichar>(aString, aStartPos, aSubstringLength);
}
inline
nsPromiseSubstring<char>
Substring( const nsReadingIterator<char>& aStart, const nsReadingIterator<char>& aEnd )
{
return nsPromiseSubstring<char>(aStart, aEnd);
}
inline
nsPromiseSubstring<PRUnichar>
Substring( const nsReadingIterator<PRUnichar>& aStart, const nsReadingIterator<PRUnichar>& aEnd )
{
return nsPromiseSubstring<PRUnichar>(aStart, aEnd);
}
template <class CharT>

Просмотреть файл

@ -144,6 +144,26 @@ class nsWritingIterator
return mFragment;
}
nsWritableFragment<CharT>&
fragment()
{
return mFragment;
}
const basic_nsAWritableString<CharT>&
string() const
{
NS_ASSERTION(mOwningString, "iterator not attached to a string (|mOwningString| == 0)");
return *mOwningString;
}
basic_nsAWritableString<CharT>&
string()
{
NS_ASSERTION(mOwningString, "iterator not attached to a string (|mOwningString| == 0)");
return *mOwningString;
}
difference_type
size_forward() const
{

Просмотреть файл

@ -188,6 +188,13 @@ class nsReadingIterator
return mFragment;
}
const basic_nsAReadableString<CharT>&
string() const
{
NS_ASSERTION(mOwningString, "iterator not attached to a string (|mOwningString| == 0)");
return *mOwningString;
}
difference_type
size_forward() const
{
@ -1167,8 +1174,8 @@ class nsPromiseSubstring
// nothing else to do here
}
nsPromiseSubstring( const basic_nsAReadableString<CharT>& aString, const nsReadingIterator<CharT>& aStart, const nsReadingIterator<CharT>& aEnd )
: mString(aString)
nsPromiseSubstring( const nsReadingIterator<CharT>& aStart, const nsReadingIterator<CharT>& aEnd )
: mString(aStart.string())
{
nsReadingIterator<CharT> zeroPoint;
mString.BeginReading(zeroPoint);
@ -1278,18 +1285,32 @@ SameImplementation( const basic_nsAReadableString<CharT>& lhs, const basic_nsARe
return imp_tag && (imp_tag==rhs.Implementation());
}
template <class CharT>
nsPromiseSubstring<CharT>
Substring( const basic_nsAReadableString<CharT>& aString, PRUint32 aStartPos, PRUint32 aSubstringLength )
inline
nsPromiseSubstring<char>
Substring( const basic_nsAReadableString<char>& aString, PRUint32 aStartPos, PRUint32 aSubstringLength )
{
return nsPromiseSubstring<CharT>(aString, aStartPos, aSubstringLength);
return nsPromiseSubstring<char>(aString, aStartPos, aSubstringLength);
}
template <class CharT>
nsPromiseSubstring<CharT>
Substring( const basic_nsAReadableString<CharT>& aString, const nsReadingIterator<CharT>& aStart, const nsReadingIterator<CharT>& aEnd )
inline
nsPromiseSubstring<PRUnichar>
Substring( const basic_nsAReadableString<PRUnichar>& aString, PRUint32 aStartPos, PRUint32 aSubstringLength )
{
return nsPromiseSubstring<CharT>(aString, aStart, aEnd);
return nsPromiseSubstring<PRUnichar>(aString, aStartPos, aSubstringLength);
}
inline
nsPromiseSubstring<char>
Substring( const nsReadingIterator<char>& aStart, const nsReadingIterator<char>& aEnd )
{
return nsPromiseSubstring<char>(aStart, aEnd);
}
inline
nsPromiseSubstring<PRUnichar>
Substring( const nsReadingIterator<PRUnichar>& aStart, const nsReadingIterator<PRUnichar>& aEnd )
{
return nsPromiseSubstring<PRUnichar>(aStart, aEnd);
}
template <class CharT>

Просмотреть файл

@ -144,6 +144,26 @@ class nsWritingIterator
return mFragment;
}
nsWritableFragment<CharT>&
fragment()
{
return mFragment;
}
const basic_nsAWritableString<CharT>&
string() const
{
NS_ASSERTION(mOwningString, "iterator not attached to a string (|mOwningString| == 0)");
return *mOwningString;
}
basic_nsAWritableString<CharT>&
string()
{
NS_ASSERTION(mOwningString, "iterator not attached to a string (|mOwningString| == 0)");
return *mOwningString;
}
difference_type
size_forward() const
{