From d502903332ec7c95aa22652cb4320df4726e6d13 Mon Sep 17 00:00:00 2001 From: "bzbarsky%mit.edu" Date: Tue, 8 Jun 2004 18:54:57 +0000 Subject: [PATCH] Make the scanner bail out of functions that assume it's initialized if mSlidingBuffer is null. Bug 108067, patch by Andreas M. "Clarence" Schneider and Blake Kaplan , r+sr=bzbarsky git-svn-id: svn://10.0.0.236/trunk@157598 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/parser/htmlparser/src/nsScanner.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/mozilla/parser/htmlparser/src/nsScanner.cpp b/mozilla/parser/htmlparser/src/nsScanner.cpp index cf515ac2606..39958e38916 100644 --- a/mozilla/parser/htmlparser/src/nsScanner.cpp +++ b/mozilla/parser/htmlparser/src/nsScanner.cpp @@ -266,8 +266,10 @@ nsScanner::~nsScanner() { * @return */ void nsScanner::RewindToMark(void){ - mCountRemaining += (Distance(mMarkPosition, mCurrentPosition)); - mCurrentPosition = mMarkPosition; + if (mSlidingBuffer) { + mCountRemaining += (Distance(mMarkPosition, mCurrentPosition)); + mCurrentPosition = mMarkPosition; + } } @@ -297,6 +299,9 @@ void nsScanner::Mark() { * @return error code */ PRBool nsScanner::UngetReadable(const nsAString& aBuffer) { + if (!mSlidingBuffer) { + return PR_FALSE; + } mSlidingBuffer->UngetReadable(aBuffer,mCurrentPosition); mSlidingBuffer->BeginReading(mCurrentPosition); // Insertion invalidated our iterators @@ -316,7 +321,6 @@ PRBool nsScanner::UngetReadable(const nsAString& aBuffer) { * @return error code */ nsresult nsScanner::Append(const nsAString& aBuffer) { - mTotalRead += aBuffer.Length(); AppendToBuffer(aBuffer); return NS_OK; @@ -1335,6 +1339,11 @@ void nsScanner::AppendASCIItoBuffer(const char* aData, PRUint32 aLen) * @return nada */ void nsScanner::CopyUnusedData(nsString& aCopyBuffer) { + if (!mSlidingBuffer) { + aCopyBuffer.Truncate(); + return; + } + nsScannerIterator start, end; start = mCurrentPosition; end = mEndPosition;