diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2018-10-15 17:14:41 +0200 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2018-10-15 17:14:41 +0200 |
commit | f892d3791219d1041e0cbb1b866e15774004aa18 (patch) | |
tree | 3df6e289843a8e937a2b847f708bc2818b0eceae | |
parent | 80514b7b1b88f46f3965ff023035dea83b57e652 (diff) |
dri3: Handle radeon_get_pixmap_bo returning NULL
We were trying to already, but testing the wrong pointer.
Fixes: b85b7b11f5b5 "Add struct radeon_buffer"
Bug: https://bugs.debian.org/910846
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | src/radeon_dri3.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/radeon_dri3.c b/src/radeon_dri3.c index 7e89a2f0..25078bae 100644 --- a/src/radeon_dri3.c +++ b/src/radeon_dri3.c @@ -212,7 +212,7 @@ static int radeon_dri3_fd_from_pixmap(ScreenPtr screen, CARD16 *stride, CARD32 *size) { - struct radeon_bo *bo; + struct radeon_buffer *bo; int fd; #ifdef USE_GLAMOR ScrnInfoPtr scrn = xf86ScreenToScrn(screen); @@ -222,10 +222,10 @@ static int radeon_dri3_fd_from_pixmap(ScreenPtr screen, return glamor_fd_from_pixmap(screen, pixmap, stride, size); #endif - bo = radeon_get_pixmap_bo(pixmap)->bo.radeon; + bo = radeon_get_pixmap_bo(pixmap); if (!bo) { exaMoveInPixmap(pixmap); - bo = radeon_get_pixmap_bo(pixmap)->bo.radeon; + bo = radeon_get_pixmap_bo(pixmap); if (!bo) return -1; } @@ -233,11 +233,11 @@ static int radeon_dri3_fd_from_pixmap(ScreenPtr screen, if (pixmap->devKind > UINT16_MAX) return -1; - if (radeon_gem_prime_share_bo(bo, &fd) < 0) + if (radeon_gem_prime_share_bo(bo->bo.radeon, &fd) < 0) return -1; *stride = pixmap->devKind; - *size = bo->size; + *size = bo->bo.radeon->size; return fd; } |