Make the scanner bail out of functions that assume it's initialized if

mSlidingBuffer is null.  Bug 108067, patch by Andreas M. "Clarence" Schneider
<c@c07.de> and Blake Kaplan <mrbkap@rice.edu>, r+sr=bzbarsky


git-svn-id: svn://10.0.0.236/trunk@157598 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bzbarsky%mit.edu
2004-06-08 18:54:57 +00:00
parent c91228097a
commit d502903332

View File

@@ -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;