From: Michel Dänzer <[email protected]> drmmode_crtc_scanout_create just needs to call drmmode_crtc_scanout_allocate when scanout->bo is NULL.
This makes it clearer to the reader / compiler that drmmode_crtc_scanout_create doesn't dereference scanout->bo when it's NULL. Signed-off-by: Michel Dänzer <[email protected]> --- src/drmmode_display.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 94f273c..f010919 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -513,7 +513,7 @@ drmmode_crtc_scanout_allocate(xf86CrtcPtr crtc, static PixmapPtr drmmode_crtc_scanout_create(xf86CrtcPtr crtc, struct drmmode_scanout *scanout, - void *data, int width, int height) + int width, int height) { ScrnInfoPtr pScrn = crtc->scrn; drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; @@ -527,9 +527,8 @@ drmmode_crtc_scanout_create(xf86CrtcPtr crtc, drmmode_crtc_scanout_destroy(drmmode, scanout); } - if (!data) { - data = drmmode_crtc_scanout_allocate(crtc, scanout, width, height); - if (!data) + if (!scanout->bo) { + if (!drmmode_crtc_scanout_allocate(crtc, scanout, width, height)) return NULL; } @@ -656,7 +655,7 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode, for (i = 0; i < (info->tear_free ? 2 : 1); i++) { drmmode_crtc_scanout_create(crtc, &drmmode_crtc->scanout[i], - NULL, mode->HDisplay, + mode->HDisplay, mode->VDisplay); if (drmmode_crtc->scanout[i].pixmap) { @@ -819,8 +818,11 @@ drmmode_crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height) { drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; - return drmmode_crtc_scanout_create(crtc, &drmmode_crtc->rotate, data, - width, height); + /* Xorg passes in the return value of drmmode_crtc_shadow_allocate + * for data, but that's redundant for drmmode_crtc_scanout_create. + */ + return drmmode_crtc_scanout_create(crtc, &drmmode_crtc->rotate, width, + height); } static void -- 2.6.0 _______________________________________________ xorg-driver-ati mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-driver-ati
