Index: Source/core/fileapi/FileReaderLoader.cpp |
diff --git a/Source/core/fileapi/FileReaderLoader.cpp b/Source/core/fileapi/FileReaderLoader.cpp |
index 617dca714e5b7db823d338419e7eeec0a6229ae0..74e518bcb39cfff9711272e55bbfcaecf3aa1a4d 100644 |
--- a/Source/core/fileapi/FileReaderLoader.cpp |
+++ b/Source/core/fileapi/FileReaderLoader.cpp |
@@ -201,18 +201,20 @@ void FileReaderLoader::didReceiveResponse(unsigned long, const ResourceResponse& |
return; |
} |
- if (initialBufferLength < 0) { |
+ if (initialBufferLength < 0) |
m_rawData = adoptPtr(new ArrayBufferBuilder()); |
- } else { |
+ else |
m_rawData = adoptPtr(new ArrayBufferBuilder(static_cast<unsigned>(initialBufferLength))); |
- // Total size is known. Set m_rawData to ignore overflowed data. |
- m_rawData->setVariableCapacity(false); |
- } |
- if (!m_rawData) { |
+ if (!m_rawData || !m_rawData->isValid()) { |
failed(FileError::NOT_READABLE_ERR); |
return; |
} |
+ |
+ if (initialBufferLength >= 0) { |
+ // Total size is known. Set m_rawData to ignore overflowed data. |
+ m_rawData->setVariableCapacity(false); |
+ } |
} |
if (m_client) |