Fix potential crash when buffers are destroyed
authorPaul Olav Tvete <paul.tvete@nokia.com>
Tue, 6 Mar 2012 10:35:34 +0000 (11:35 +0100)
committerJørgen Lind <jorgen.lind@nokia.com>
Tue, 6 Mar 2012 10:42:57 +0000 (11:42 +0100)
Also remove non-optimization.

Change-Id: Ic5903efffc064eb1ef0d46ef72231e726270af47
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
src/compositor/wayland_wrapper/wlsurface.cpp

index af37d04..9d4658d 100644 (file)
@@ -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));