diff options
author | Paul Olav Tvete <paul.tvete@nokia.com> | 2012-03-06 11:35:34 +0100 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@nokia.com> | 2012-03-06 11:42:57 +0100 |
commit | 11b02237e1bc207ac2916ea2bd067fd68b56f929 (patch) | |
tree | aeded54869ef47778297136ea69f77d7e27b6e68 /src | |
parent | 0f5abf0189a8f111e5a3762772f0750bac206ba8 (diff) |
Fix potential crash when buffers are destroyed
Also remove non-optimization.
Change-Id: Ic5903efffc064eb1ef0d46ef72231e726270af47
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/compositor/wayland_wrapper/wlsurface.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/compositor/wayland_wrapper/wlsurface.cpp b/src/compositor/wayland_wrapper/wlsurface.cpp index af37d04a9..9d4658d06 100644 --- a/src/compositor/wayland_wrapper/wlsurface.cpp +++ b/src/compositor/wayland_wrapper/wlsurface.cpp @@ -300,19 +300,15 @@ bool Surface::advanceBufferQueue() m_backBuffer = m_bufferQueue.takeFirst(); while (m_backBuffer && m_backBuffer->isDestroyed()) { m_backBuffer->disown(); - m_bufferQueue.takeFirst(); - m_backBuffer = m_bufferQueue.size() ? m_bufferQueue.first():0; + m_backBuffer = m_bufferQueue.size() ? m_bufferQueue.takeFirst() : 0; } if (!m_backBuffer) return false; //we have no new backbuffer; - if (m_backBuffer->waylandBufferHandle()) { - if (width != m_backBuffer->width() || - height != m_backBuffer->height()) { - width = m_backBuffer->width(); - height = m_backBuffer->height(); - } + if (m_backBuffer->waylandBufferHandle()) { + width = m_backBuffer->width(); + height = m_backBuffer->height(); } setSize(QSize(width,height)); |