summaryrefslogtreecommitdiff
path: root/vcl/unx/generic/gdi/salvd.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-04-30 12:42:23 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-04-30 12:43:19 +0100
commit2e423dac20da37bd0bb4c24da47e0472888466ad (patch)
tree5b3f53c276334ef1308304d0dfcbad9b276b9625 /vcl/unx/generic/gdi/salvd.cxx
parent5d10090c0a98d1df7fd852305ed620a7348c5d10 (diff)
Related: moz#424333 pixmaps are limited to max signed short
Change-Id: I88cfd9592e11aa7dbe704df4810090b6a1ce4c66
Diffstat (limited to 'vcl/unx/generic/gdi/salvd.cxx')
-rw-r--r--vcl/unx/generic/gdi/salvd.cxx17
1 files changed, 4 insertions, 13 deletions
diff --git a/vcl/unx/generic/gdi/salvd.cxx b/vcl/unx/generic/gdi/salvd.cxx
index 0bf64dfdbc97..1a044c120d9d 100644
--- a/vcl/unx/generic/gdi/salvd.cxx
+++ b/vcl/unx/generic/gdi/salvd.cxx
@@ -38,6 +38,7 @@
#include <unx/saldisp.hxx>
#include <unx/salgdi.h>
#include <unx/salvd.h>
+#include <unx/x11/xlimits.hxx>
#include <salinst.hxx>
@@ -166,7 +167,7 @@ sal_Bool X11SalVirtualDevice::Init( SalDisplay *pDisplay,
nDepth_ = nBitCount;
if( hDrawable == None )
- hDrawable_ = XCreatePixmap( GetXDisplay(),
+ hDrawable_ = limitXCreatePixmap( GetXDisplay(),
pDisplay_->GetDrawable( m_nXScreen ),
nDX_, nDY_,
GetDepth() );
@@ -225,20 +226,10 @@ sal_Bool X11SalVirtualDevice::SetSize( long nDX, long nDY )
if( bExternPixmap_ )
return sal_False;
- // #144688#
- // the X protocol request CreatePixmap puts an upper bound
- // of 16 bit to the size. Beyond that there may be implementation
- // limits of the Xserver; which we should catch by a failed XCreatePixmap
- // call. However extra large values should be caught here since we'd run into
- // 16 bit truncation here without noticing.
- if( nDX < 0 || nDX > 65535 ||
- nDY < 0 || nDY > 65535 )
- return sal_False;
-
if( !nDX ) nDX = 1;
if( !nDY ) nDY = 1;
- Pixmap h = XCreatePixmap( GetXDisplay(),
+ Pixmap h = limitXCreatePixmap( GetXDisplay(),
pDisplay_->GetDrawable( m_nXScreen ),
nDX, nDY, nDepth_ );
@@ -246,7 +237,7 @@ sal_Bool X11SalVirtualDevice::SetSize( long nDX, long nDY )
{
if( !GetDrawable() )
{
- hDrawable_ = XCreatePixmap( GetXDisplay(),
+ hDrawable_ = limitXCreatePixmap( GetXDisplay(),
pDisplay_->GetDrawable( m_nXScreen ),
1, 1, nDepth_ );
nDX_ = 1;