summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@nokia.com>2012-03-06 11:35:34 +0100
committerJørgen Lind <jorgen.lind@nokia.com>2012-03-06 11:47:32 +0100
commit6fbccbdbd922323e125f33472fd55e89491b2a8c (patch)
tree1e4d383e89926cd5cb1cab61c885c477f32ec788
parentedd424d1ed41434f979abe42428ed74c664d59a2 (diff)
downloadqtwayland-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.cpp12
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));