Backed out changeset e67f6df41836 (bug 1315554)

This commit is contained in:
Sebastian Hengst 2017-07-22 11:04:12 +02:00
Родитель c8ba1dd256
Коммит 501b9eab08
2 изменённых файлов: 22 добавлений и 8 удалений

Просмотреть файл

@ -280,7 +280,7 @@ nsICODecoder::SniffResource(const char* aData)
// Read in the rest of the PNG unbuffered.
size_t toRead = mDirEntry.mBytesInRes - PNGSIGNATURESIZE;
return Transition::ToUnbuffered(ICOState::FINISHED_RESOURCE,
ICOState::READ_RESOURCE,
ICOState::READ_PNG,
toRead);
} else {
// Make sure we have a sane size for the bitmap information header.
@ -299,13 +299,13 @@ nsICODecoder::SniffResource(const char* aData)
}
LexerTransition<ICOState>
nsICODecoder::ReadResource(const char* aData, uint32_t aLen)
nsICODecoder::ReadPNG(const char* aData, uint32_t aLen)
{
if (!WriteToContainedDecoder(aData, aLen)) {
return Transition::TerminateFailure();
}
return Transition::ContinueUnbuffered(ICOState::READ_RESOURCE);
return Transition::ContinueUnbuffered(ICOState::READ_PNG);
}
LexerTransition<ICOState>
@ -365,10 +365,20 @@ nsICODecoder::ReadBIH(const char* aData)
// Read in the rest of the BMP unbuffered.
return Transition::ToUnbuffered(afterBMPState,
ICOState::READ_RESOURCE,
ICOState::READ_BMP,
bmpDataLength);
}
LexerTransition<ICOState>
nsICODecoder::ReadBMP(const char* aData, uint32_t aLen)
{
if (!WriteToContainedDecoder(aData, aLen)) {
return Transition::TerminateFailure();
}
return Transition::ContinueUnbuffered(ICOState::READ_BMP);
}
LexerTransition<ICOState>
nsICODecoder::PrepareForMask()
{
@ -558,10 +568,12 @@ nsICODecoder::DoDecode(SourceBufferIterator& aIterator, IResumable* aOnResume)
return Transition::To(ICOState::SNIFF_RESOURCE, PNGSIGNATURESIZE);
case ICOState::SNIFF_RESOURCE:
return SniffResource(aData);
case ICOState::READ_RESOURCE:
return ReadResource(aData, aLength);
case ICOState::READ_PNG:
return ReadPNG(aData, aLength);
case ICOState::READ_BIH:
return ReadBIH(aData);
case ICOState::READ_BMP:
return ReadBMP(aData, aLength);
case ICOState::PREPARE_FOR_MASK:
return PrepareForMask();
case ICOState::READ_MASK_ROW:

Просмотреть файл

@ -27,8 +27,9 @@ enum class ICOState
SKIP_TO_RESOURCE,
FOUND_RESOURCE,
SNIFF_RESOURCE,
READ_RESOURCE,
READ_PNG,
READ_BIH,
READ_BMP,
PREPARE_FOR_MASK,
READ_MASK_ROW,
FINISH_MASK,
@ -92,8 +93,9 @@ private:
LexerTransition<ICOState> ReadHeader(const char* aData);
LexerTransition<ICOState> ReadDirEntry(const char* aData);
LexerTransition<ICOState> SniffResource(const char* aData);
LexerTransition<ICOState> ReadResource(const char* aData, uint32_t aLen);
LexerTransition<ICOState> ReadPNG(const char* aData, uint32_t aLen);
LexerTransition<ICOState> ReadBIH(const char* aData);
LexerTransition<ICOState> ReadBMP(const char* aData, uint32_t aLen);
LexerTransition<ICOState> PrepareForMask();
LexerTransition<ICOState> ReadMaskRow(const char* aData);
LexerTransition<ICOState> FinishMask();