From d0825bca7fe65beaee391d30da42e937db621564 Mon Sep 17 00:00:00 2001 From: Steve Block Date: Tue, 2 Feb 2010 14:57:50 +0000 Subject: Merge webkit.org at r54127 : Initial merge by git Change-Id: Ib661abb595522f50ea406f72d3a0ce17f7193c82 --- WebCore/platform/graphics/qt/ImageDecoderQt.cpp | 29 +++++++++++-------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'WebCore/platform/graphics/qt/ImageDecoderQt.cpp') diff --git a/WebCore/platform/graphics/qt/ImageDecoderQt.cpp b/WebCore/platform/graphics/qt/ImageDecoderQt.cpp index b6823dd..234f78b 100644 --- a/WebCore/platform/graphics/qt/ImageDecoderQt.cpp +++ b/WebCore/platform/graphics/qt/ImageDecoderQt.cpp @@ -47,16 +47,12 @@ ImageDecoder* ImageDecoder::create(const SharedBuffer& data) } ImageDecoderQt::ImageDecoderQt() - : m_buffer(0) - , m_reader(0) - , m_repetitionCount(cAnimationNone) + : m_repetitionCount(cAnimationNone) { } ImageDecoderQt::~ImageDecoderQt() { - delete m_reader; - delete m_buffer; } void ImageDecoderQt::setData(SharedBuffer* data, bool allDataReceived) @@ -77,10 +73,16 @@ void ImageDecoderQt::setData(SharedBuffer* data, bool allDataReceived) // Attempt to load the data QByteArray imageData = QByteArray::fromRawData(m_data->data(), m_data->size()); - m_buffer = new QBuffer; + m_buffer.set(new QBuffer); m_buffer->setData(imageData); m_buffer->open(QBuffer::ReadOnly); - m_reader = new QImageReader(m_buffer, m_format); + m_reader.set(new QImageReader(m_buffer.get(), m_format)); + + // This will force the JPEG decoder to use JDCT_IFAST + m_reader->setQuality(49); + + // QImageReader only allows retrieving the format before reading the image + m_format = m_reader->format(); } bool ImageDecoderQt::isSizeAvailable() @@ -158,7 +160,6 @@ void ImageDecoderQt::internalDecodeSize() if (size.isEmpty()) return failRead(); - m_format = m_reader->format(); setSize(size.width(), size.height()); } @@ -178,10 +179,8 @@ void ImageDecoderQt::internalReadImage(size_t frameIndex) if (m_frameBufferCache[i].status() != RGBA32Buffer::FrameComplete) return; - delete m_reader; - delete m_buffer; - m_buffer = 0; - m_reader = 0; + m_reader.clear(); + m_buffer.clear(); } void ImageDecoderQt::internalHandleCurrentImage(size_t frameIndex) @@ -229,10 +228,8 @@ void ImageDecoderQt::forceLoadEverything() void ImageDecoderQt::failRead() { setFailed(); - delete m_reader; - delete m_buffer; - m_reader = 0; - m_buffer = 0; + m_reader.clear(); + m_buffer.clear(); } } -- cgit v1.1