fix signed/unsigned problem, call Reset function when error occur

This commit is contained in:
ftang%netscape.com 1999-05-05 23:53:49 +00:00
parent a7ed69ffb9
commit 35dc6c6fcb
2 changed files with 14 additions and 4 deletions

View File

@ -257,10 +257,15 @@ PRBool nsScanner::Append(const char* aBuffer, PRUint32 aLen){
// if we failed, we consume one byte by replace it with U+FFFD // if we failed, we consume one byte by replace it with U+FFFD
// and try conversion again. // and try conversion again.
if(NS_FAILED(res)) { if(NS_FAILED(res)) {
mUnicodeDecoder->Reset();
mBuffer.Append( (PRUnichar)0xFFFD); mBuffer.Append( (PRUnichar)0xFFFD);
mTotalRead++; mTotalRead++;
aBuffer += srcLength + 1; if(((PRUint32) (srcLength + 1)) > aLen)
aLen -= srcLength + 1; srcLength = aLen;
else
srcLength++;
aBuffer += srcLength;
aLen -= srcLength;
} }
} while (NS_FAILED(res) && (aLen > 0)); } while (NS_FAILED(res) && (aLen > 0));
// we continue convert the bytes data into Unicode // we continue convert the bytes data into Unicode

View File

@ -257,10 +257,15 @@ PRBool nsScanner::Append(const char* aBuffer, PRUint32 aLen){
// if we failed, we consume one byte by replace it with U+FFFD // if we failed, we consume one byte by replace it with U+FFFD
// and try conversion again. // and try conversion again.
if(NS_FAILED(res)) { if(NS_FAILED(res)) {
mUnicodeDecoder->Reset();
mBuffer.Append( (PRUnichar)0xFFFD); mBuffer.Append( (PRUnichar)0xFFFD);
mTotalRead++; mTotalRead++;
aBuffer += srcLength + 1; if(((PRUint32) (srcLength + 1)) > aLen)
aLen -= srcLength + 1; srcLength = aLen;
else
srcLength++;
aBuffer += srcLength;
aLen -= srcLength;
} }
} while (NS_FAILED(res) && (aLen > 0)); } while (NS_FAILED(res) && (aLen > 0));
// we continue convert the bytes data into Unicode // we continue convert the bytes data into Unicode