From 3fe3d1dfdda9be266ba2400a85fd100c4e3d2cc2 Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Thu, 26 Jan 2012 11:15:02 +0100 Subject: Don't crash when source or target is null MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I4992867ad764bd1bd175478c6be1094ca8a72812 Reviewed-by: Samuel Rødal --- src/gui/opengl/qopenglframebufferobject.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src/gui') diff --git a/src/gui/opengl/qopenglframebufferobject.cpp b/src/gui/opengl/qopenglframebufferobject.cpp index 6714ea3d49..5e22554303 100644 --- a/src/gui/opengl/qopenglframebufferobject.cpp +++ b/src/gui/opengl/qopenglframebufferobject.cpp @@ -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); } -- cgit v1.2.3