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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user