summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.p.agocs@nokia.com>2011-05-30 14:18:52 +0200
committerLaszlo Agocs <laszlo.p.agocs@nokia.com>2011-05-30 14:41:14 +0200
commit1d3864488cb2ae4b105948d6569d08c477f77d80 (patch)
tree9b99b9870fa2391bc67684090a4e7fafcbb21fab
parentddae8b445b7b0f1755438b093fbb45d59686518c (diff)
Have proper warnings shown when xcb window surface creation fails.
Reviewed-by: Samuel Rødal
-rw-r--r--src/plugins/platforms/xcb/qxcbwindowsurface.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindowsurface.cpp b/src/plugins/platforms/xcb/qxcbwindowsurface.cpp
index 61c2d9bb36..7c46b3d572 100644
--- a/src/plugins/platforms/xcb/qxcbwindowsurface.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindowsurface.cpp
@@ -52,6 +52,7 @@
#include <sys/shm.h>
#include <stdio.h>
+#include <errno.h>
#include <qdebug.h>
#include <qpainter.h>
@@ -97,9 +98,13 @@ QXcbShmImage::QXcbShmImage(QXcbScreen *screen, const QSize &size, uint depth, QI
~0,
0);
- m_shm_info.shmid = shmget (IPC_PRIVATE,
- m_xcb_image->stride * m_xcb_image->height, IPC_CREAT|0777);
-
+ int segmentSize = m_xcb_image->stride * m_xcb_image->height;
+ int id = shmget(IPC_PRIVATE, segmentSize, IPC_CREAT | 0777);
+ if (id == -1)
+ qWarning("QXcbShmImage: shmget() failed (%d) for size %d (%dx%d)",
+ errno, segmentSize, size.width(), size.height());
+ else
+ m_shm_info.shmid = id;
m_shm_info.shmaddr = m_xcb_image->data = (quint8 *)shmat (m_shm_info.shmid, 0, 0);
m_shm_info.shmseg = xcb_generate_id(xcb_connection());