From 55d1b061bdad22b3c95e810b64b92de5623132d2 Mon Sep 17 00:00:00 2001 From: "bzbarsky%mit.edu" Date: Fri, 11 Nov 2005 18:38:54 +0000 Subject: [PATCH] Followup for bug 314920, patch by Alfred Kayser , r+sr=bzbarsky --- layout/style/nsCSSParser.cpp | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index 186befbe3b30..12e4d619b830 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -174,7 +174,7 @@ protected: nsresult InitScanner(nsIUnicharInputStream* aInput, nsIURI* aSheetURI, PRUint32 aLineNumber, nsIURI* aBaseURI); // the caller must hold on to aBuffer until parsing is done - nsresult InitScanner(const nsAString& aBuffer, nsIURI* aSheetURI, + nsresult InitScanner(const nsString& aString, nsIURI* aSheetURI, PRUint32 aLineNumber, nsIURI* aBaseURI); nsresult ReleaseScanner(void); @@ -618,15 +618,14 @@ CSSParserImpl::InitScanner(nsIUnicharInputStream* aInput, nsIURI* aSheetURI, } nsresult -CSSParserImpl::InitScanner(const nsAString& aBuffer, nsIURI* aSheetURI, +CSSParserImpl::InitScanner(const nsString& aString, nsIURI* aSheetURI, PRUint32 aLineNumber, nsIURI* aBaseURI) { // Having it not own the string is OK since the caller will hold on to // the stream until we're done parsing. NS_ASSERTION(! mScannerInited, "already have scanner"); - const nsAFlatString& flat = PromiseFlatString(aBuffer); - mScanner.Init(nsnull, flat.get(), flat.Length(), aSheetURI, aLineNumber); + mScanner.Init(nsnull, aString.get(), aString.Length(), aSheetURI, aLineNumber); #ifdef DEBUG mScannerInited = PR_TRUE; @@ -748,8 +747,8 @@ CSSParserImpl::ParseStyleAttribute(const nsAString& aAttributeValue, { NS_ASSERTION(nsnull != aBaseURL, "need base URL"); - nsresult rv = - InitScanner(aAttributeValue, aDocURL, 0, aBaseURL); // XXX line number + const nsAFlatString& flat = PromiseFlatString(aAttributeValue); + nsresult rv = InitScanner(flat, aDocURL, 0, aBaseURL); // XXX line number if (! NS_SUCCEEDED(rv)) { return rv; } @@ -803,7 +802,8 @@ CSSParserImpl::ParseAndAppendDeclaration(const nsAString& aBuffer, // NS_ASSERTION(nsnull != aBaseURL, "need base URL"); *aChanged = PR_FALSE; - nsresult rv = InitScanner(aBuffer, aSheetURL, 0, aBaseURL); + const nsAFlatString& flat = PromiseFlatString(aBuffer); + nsresult rv = InitScanner(flat, aSheetURL, 0, aBaseURL); if (! NS_SUCCEEDED(rv)) { return rv; } @@ -852,7 +852,8 @@ CSSParserImpl::ParseRule(const nsAString& aRule, { NS_ASSERTION(nsnull != aBaseURL, "need base URL"); - nsresult rv = InitScanner(aRule, aSheetURL, 0, aBaseURL); + const nsAFlatString& flat = PromiseFlatString(aRule); + nsresult rv = InitScanner(flat, aSheetURL, 0, aBaseURL); if (NS_FAILED(rv)) { return rv; } @@ -893,7 +894,8 @@ CSSParserImpl::ParseProperty(const nsCSSProperty aPropID, NS_ASSERTION(nsnull != aDeclaration, "Need declaration to parse into!"); *aChanged = PR_FALSE; - nsresult rv = InitScanner(aPropValue, aSheetURL, 0, aBaseURL); + const nsAFlatString& flat = PromiseFlatString(aPropValue); + nsresult rv = InitScanner(flat, aSheetURL, 0, aBaseURL); if (NS_FAILED(rv)) { return rv; } @@ -998,8 +1000,10 @@ CSSParserImpl::DoParseMediaList(const nsSubstring& aBuffer, PRUint32 aLineNumber, // for error reporting nsMediaList* aMediaList) { + const nsAFlatString& flat = PromiseFlatString(aBuffer); + // fake base URL since media lists don't have URLs in them - nsresult rv = InitScanner(aBuffer, aURL, aLineNumber, aURL); + nsresult rv = InitScanner(flat, aURL, aLineNumber, aURL); if (NS_FAILED(rv)) { return rv; } @@ -1021,9 +1025,8 @@ CSSParserImpl::ParseColorString(const nsSubstring& aBuffer, { NS_ASSERTION(aHandleAlphaColors == PR_TRUE || aHandleAlphaColors == PR_FALSE, "bad PRBool value"); - nsresult rv = NS_ERROR_FAILURE; - - rv = InitScanner(aBuffer, aURL, aLineNumber, aURL); + const nsAFlatString& flat = PromiseFlatString(aBuffer); + nsresult rv = InitScanner(flat, aURL, aLineNumber, aURL); if (NS_FAILED(rv)) return rv;