From 0f1ded057dbf875e69a0d72418d95610db8fa6a3 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Mon, 30 Dec 2019 10:50:52 +0100 Subject: [PATCH] Provide correct dimensions for XShm setup Since 53f913a we initialize the underlying PixelBuffer with 0x0 dimensions, which means we need to keep more explicit track of what we are trying to allocate in the setup methods. --- vncviewer/PlatformPixelBuffer.cxx | 6 +++--- vncviewer/PlatformPixelBuffer.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vncviewer/PlatformPixelBuffer.cxx b/vncviewer/PlatformPixelBuffer.cxx index 61f7b743..59e51d59 100644 --- a/vncviewer/PlatformPixelBuffer.cxx +++ b/vncviewer/PlatformPixelBuffer.cxx @@ -43,7 +43,7 @@ PlatformPixelBuffer::PlatformPixelBuffer(int width, int height) : #endif { #if !defined(WIN32) && !defined(__APPLE__) - if (!setupShm()) { + if (!setupShm(width, height)) { xim = XCreateImage(fl_display, CopyFromParent, 32, ZPixmap, 0, 0, width, height, 32, 0); if (!xim) @@ -136,7 +136,7 @@ static int XShmAttachErrorHandler(Display *dpy, XErrorEvent *error) return 0; } -bool PlatformPixelBuffer::setupShm() +bool PlatformPixelBuffer::setupShm(int width, int height) { int major, minor; Bool pixmaps; @@ -153,7 +153,7 @@ bool PlatformPixelBuffer::setupShm() shminfo = new XShmSegmentInfo; xim = XShmCreateImage(fl_display, CopyFromParent, 32, - ZPixmap, 0, shminfo, width(), height()); + ZPixmap, 0, shminfo, width, height); if (!xim) goto free_shminfo; diff --git a/vncviewer/PlatformPixelBuffer.h b/vncviewer/PlatformPixelBuffer.h index f9038cd9..ec439f64 100644 --- a/vncviewer/PlatformPixelBuffer.h +++ b/vncviewer/PlatformPixelBuffer.h @@ -53,7 +53,7 @@ protected: #if !defined(WIN32) && !defined(__APPLE__) protected: - bool setupShm(); + bool setupShm(int width, int height); protected: XShmSegmentInfo *shminfo; -- 2.39.5