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:47:32 +0100 |
commit | 6fbccbdbd922323e125f33472fd55e89491b2a8c (patch) | |
tree | 1e4d383e89926cd5cb1cab61c885c477f32ec788 | |
parent | edd424d1ed41434f979abe42428ed74c664d59a2 (diff) | |
download | qtwayland-6fbccbdbd922323e125f33472fd55e89491b2a8c.tar.gz |
Fix potential crash when buffers are destroyed
Also remove non-optimization.
Change-Id: I989d752b6ce406b8e60704cfbdecdfdfd72cbf9d
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
-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 f7721c1a..eef51f6f 100644 --- a/src/compositor/wayland_wrapper/wlsurface.cpp +++ b/src/compositor/wayland_wrapper/wlsurface.cpp @@ -285,19 +285,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)); |