diff options
author | marha <marha@users.sourceforge.net> | 2010-07-14 10:57:04 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-07-14 10:57:04 +0000 |
commit | 8fb9d7f4ca923dc7f640a0df6c871348a3e554ab (patch) | |
tree | 39ebbf9255fe0fd660ea645f4ebdef3287a5078b /xorg-server/hw/xquartz/xpr | |
parent | 80b785273c916676a94cbe1d7dfbbc93b58127d5 (diff) | |
parent | 865af20e32591176d03acf984d9b5788d5ebce21 (diff) | |
download | vcxsrv-8fb9d7f4ca923dc7f640a0df6c871348a3e554ab.tar.gz vcxsrv-8fb9d7f4ca923dc7f640a0df6c871348a3e554ab.tar.bz2 vcxsrv-8fb9d7f4ca923dc7f640a0df6c871348a3e554ab.zip |
svn merge ^/branches/released .
Diffstat (limited to 'xorg-server/hw/xquartz/xpr')
-rw-r--r-- | xorg-server/hw/xquartz/xpr/xprCursor.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/xorg-server/hw/xquartz/xpr/xprCursor.c b/xorg-server/hw/xquartz/xpr/xprCursor.c index 9c7890647..07dd5c8fb 100644 --- a/xorg-server/hw/xquartz/xpr/xprCursor.c +++ b/xorg-server/hw/xquartz/xpr/xprCursor.c @@ -67,6 +67,7 @@ static Bool load_cursor(CursorPtr src, int screen)
{
uint32_t *data;
+ Bool free_data = FALSE;
uint32_t rowbytes;
int width, height;
int hot_x, hot_y;
@@ -95,6 +96,7 @@ load_cursor(CursorPtr src, int screen) unsigned i;
rowbytes = src->bits->width * sizeof (CARD32);
data = malloc(rowbytes * src->bits->height);
+ free_data = TRUE;
if(!data) {
FatalError("Failed to allocate memory in %s\n", __func__);
}
@@ -121,6 +123,7 @@ load_cursor(CursorPtr src, int screen) /* round up to 8 pixel boundary so we can convert whole bytes */
rowbytes = ((src->bits->width * 4) + 31) & ~31;
data = malloc(rowbytes * src->bits->height);
+ free_data = TRUE;
if(!data) {
FatalError("Failed to allocate memory in %s\n", __func__);
}
@@ -173,7 +176,8 @@ load_cursor(CursorPtr src, int screen) }
err = xp_set_cursor(width, height, hot_x, hot_y, data, rowbytes);
- free(data);
+ if(free_data)
+ free(data);
return err == Success;
}
|