Don't crash when source or target is null
authorGunnar Sletta <gunnar.sletta@nokia.com>
Thu, 26 Jan 2012 10:15:02 +0000 (11:15 +0100)
committerQt by Nokia <qt-info@nokia.com>
Mon, 30 Jan 2012 13:43:27 +0000 (14:43 +0100)
Change-Id: I4992867ad764bd1bd175478c6be1094ca8a72812
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
src/gui/opengl/qopenglframebufferobject.cpp

index 6714ea3..5e22554 100644 (file)
@@ -1142,8 +1142,24 @@ void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target,
                                                QOpenGLFramebufferObject *source,
                                                GLbitfield buffers, GLenum filter)
 {
-    blitFramebuffer(target, QRect(QPoint(0, 0), target->size()),
-                    source, QRect(QPoint(0, 0), source->size()),
+    if (!target && !source)
+        return;
+
+    QSize targetSize;
+    QSize sourceSize;
+
+    if (target)
+        targetSize = target->size();
+    if (source)
+        sourceSize = source->size();
+
+    if (targetSize.isEmpty())
+        targetSize = sourceSize;
+    else if (sourceSize.isEmpty())
+        sourceSize = targetSize;
+
+    blitFramebuffer(target, QRect(QPoint(0, 0), targetSize),
+                    source, QRect(QPoint(0, 0), sourceSize),
                     buffers, filter);
 }