summaryrefslogtreecommitdiff
path: root/uxa/uxa-render.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-06-06 17:20:39 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-06-06 17:20:39 +0100
commit902391bd798775e1a7a53503d4dd1756162f737f (patch)
tree76e67b3f1278ca2a248a6e43580f61f18ec86bfc /uxa/uxa-render.c
parent3d8a1f7176877975a31ad7a6548fa8309065f617 (diff)
uxa: Remove dead-code for SourcePictures
All SourcePictures are now converted into Drawables, which had been assumed by the driver backend. However, the code still existed to attempt to pass procedural pictures onwards and so set pSrcPix to NULL which was being flagged by the static analyser as a potential NULL dereference. Reported-by: Zdenek Kabelac <zkabelac@redhat.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'uxa/uxa-render.c')
-rw-r--r--uxa/uxa-render.c46
1 files changed, 19 insertions, 27 deletions
diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
index 1e88c5d7..4463dc2f 100644
--- a/uxa/uxa-render.c
+++ b/uxa/uxa-render.c
@@ -1064,10 +1064,25 @@ uxa_try_driver_composite(CARD8 op,
return 1;
}
- if (localSrc->pDrawable) {
- pSrcPix = uxa_get_offscreen_pixmap(localSrc->pDrawable,
- &src_off_x, &src_off_y);
- if (!pSrcPix) {
+ pSrcPix = uxa_get_offscreen_pixmap(localSrc->pDrawable,
+ &src_off_x, &src_off_y);
+ if (!pSrcPix) {
+ REGION_UNINIT(screen, &region);
+
+ if (localSrc != pSrc)
+ FreePicture(localSrc, 0);
+ if (localMask && localMask != pMask)
+ FreePicture(localMask, 0);
+ if (localDst != pDst)
+ FreePicture(localDst, 0);
+
+ return 0;
+ }
+
+ if (localMask) {
+ pMaskPix = uxa_get_offscreen_pixmap(localMask->pDrawable,
+ &mask_off_x, &mask_off_y);
+ if (!pMaskPix) {
REGION_UNINIT(screen, &region);
if (localSrc != pSrc)
@@ -1079,29 +1094,6 @@ uxa_try_driver_composite(CARD8 op,
return 0;
}
- } else {
- pSrcPix = NULL;
- }
-
- if (localMask) {
- if (localMask->pDrawable) {
- pMaskPix = uxa_get_offscreen_pixmap(localMask->pDrawable,
- &mask_off_x, &mask_off_y);
- if (!pMaskPix) {
- REGION_UNINIT(screen, &region);
-
- if (localSrc != pSrc)
- FreePicture(localSrc, 0);
- if (localMask && localMask != pMask)
- FreePicture(localMask, 0);
- if (localDst != pDst)
- FreePicture(localDst, 0);
-
- return 0;
- }
- } else {
- pMaskPix = NULL;
- }
}
if (!(*uxa_screen->info->prepare_composite)