From e14391e94c850b8bd03680c23b38978db68687a8 Mon Sep 17 00:00:00 2001 From: John Reck Date: Thu, 4 Nov 2010 12:00:17 -0700 Subject: Merge Webkit at r70949: Initial merge by git. Change-Id: I77b8645c083b5d0da8dba73ed01d4014aab9848e --- WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp') diff --git a/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp b/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp index 5794fd6..2275fc7 100644 --- a/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp +++ b/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp @@ -86,14 +86,15 @@ bool WEBPImageDecoder::decode(bool onlySize) return true; if (!WebPGetInfo(dataBytes, dataSize, &width, &height)) return setFailed(); + if (!ImageDecoder::isSizeAvailable() && !setSize(width, height)) + return setFailed(); if (onlySize) - return setSize(width, height) || setFailed(); + return true; // FIXME: Add support for progressive decoding. if (!isAllDataReceived()) return true; - if (m_frameBufferCache.isEmpty()) - return true; + ASSERT(!m_frameBufferCache.isEmpty()); RGBA32Buffer& buffer = m_frameBufferCache[0]; if (buffer.status() == RGBA32Buffer::FrameEmpty) { ASSERT(width == size().width()); @@ -103,8 +104,8 @@ bool WEBPImageDecoder::decode(bool onlySize) } const int stride = width * bytesPerPixel; Vector rgb; - rgb.reserveCapacity(height * stride); - if (!WebPDecodeBGRInto(dataBytes, dataSize, &rgb[0], height * stride, stride)) + rgb.resize(height * stride); + if (!WebPDecodeBGRInto(dataBytes, dataSize, rgb.data(), rgb.size(), stride)) return setFailed(); // FIXME: remove this data copy. for (int y = 0; y < height; ++y) { -- cgit v1.1