b=342163. parseFromStream error in nsISAXXMLReader on trunk. r=weirdal, sr=peterv.

This commit is contained in:
sayrer%gmail.com 2006-07-10 15:32:58 +00:00
Родитель 72a42af3c1
Коммит ebac30840f
2 изменённых файлов: 15 добавлений и 5 удалений

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

@ -431,6 +431,9 @@ nsSAXXMLReader::ParseFromStream(nsIInputStream *aStream,
aStream = bufferedStream;
}
rv = EnsureBaseURI();
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIChannel> parserChannel;
rv = NS_NewInputStreamChannel(getter_AddRefs(parserChannel), mBaseURI,
aStream, nsDependentCString(aContentType));
@ -494,6 +497,8 @@ nsSAXXMLReader::OnStartRequest(nsIRequest *aRequest, nsISupports *aContext)
{
NS_ENSURE_TRUE(mIsAsyncParse, NS_ERROR_FAILURE);
nsresult rv;
rv = EnsureBaseURI();
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIChannel> channel = do_QueryInterface(aRequest);
rv = InitParser(mParserObserver, channel);
NS_ENSURE_SUCCESS(rv, rv);
@ -543,11 +548,6 @@ nsSAXXMLReader::InitParser(nsIRequestObserver *aObserver, nsIChannel *aChannel)
TryChannelCharset(aChannel, charsetSource, charset);
parser->SetDocumentCharset(charset, charsetSource);
if (!mBaseURI) {
rv = NS_NewURI(getter_AddRefs(mBaseURI), "about:blank");
NS_ENSURE_SUCCESS(rv, rv);
}
#ifdef MOZILLA_1_8_BRANCH
rv = parser->Parse(mBaseURI, aObserver, PR_FALSE);
#else
@ -590,6 +590,15 @@ nsSAXXMLReader::TryChannelCharset(nsIChannel *aChannel,
return PR_FALSE;
}
nsresult
nsSAXXMLReader::EnsureBaseURI()
{
if (mBaseURI)
return NS_OK;
return NS_NewURI(getter_AddRefs(mBaseURI), "about:blank");
}
nsresult
nsSAXXMLReader::SplitExpatName(const PRUnichar *aExpatName,
nsString &aURI,

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

@ -110,6 +110,7 @@ private:
static PRBool TryChannelCharset(nsIChannel *aChannel,
PRInt32& aCharsetSource,
nsACString& aCharset);
nsresult EnsureBaseURI();
nsresult InitParser(nsIRequestObserver *aListener, nsIChannel *aChannel);
nsresult SplitExpatName(const PRUnichar *aExpatName,
nsString &aURI,