From c66ae235700f5efe64eb168327551b8f1d153c9c Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Mon, 13 Feb 2012 09:43:58 +0000 Subject: Handle new xorg_list API. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=45937 Signed-off-by: Michel Dänzer --- diff --git a/configure.ac b/configure.ac index 29f129a..0083325 100644 --- configure.ac +++ configure.ac @@ -234,10 +234,18 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS, [#include "xorg-server.h"]) AC_CHECK_HEADERS([list.h], - [], [], + [have_list_h="yes"], [have_list_h="no"], [#include #include "xorg-server.h"]) +if test "x$have_list_h" = xyes; then + AC_CHECK_DECL(xorg_list_init, + [AC_DEFINE(HAVE_XORG_LIST, 1, [Have xorg_list API])], [], + [#include + #include "xorg-server.h" + #include "list.h"]) +fi + CPPFLAGS="$SAVE_CPPFLAGS" AM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes) diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c index 835575f..cf905a1 100644 --- src/radeon_dri2.c +++ src/radeon_dri2.c @@ -40,6 +40,13 @@ #if HAVE_LIST_H #include "list.h" +#if !HAVE_XORG_LIST +#define xorg_list list +#define xorg_list_init list_init +#define xorg_list_add list_add +#define xorg_list_del list_del +#define xorg_list_for_each_entry list_for_each_entry +#endif #endif #ifdef RADEON_DRI2 @@ -515,11 +522,11 @@ typedef struct _DRI2FrameEvent { Bool valid; - struct list link; + struct xorg_list link; } DRI2FrameEventRec, *DRI2FrameEventPtr; typedef struct _DRI2ClientEvents { - struct list reference_list; + struct xorg_list reference_list; } DRI2ClientEventsRec, *DRI2ClientEventsPtr; #if HAS_DEVPRIVATEKEYREC @@ -538,7 +545,7 @@ DevPrivateKey DRI2ClientEventsPrivateKey = &DRI2ClientEventsPrivateKeyIndex; dixLookupPrivate(&(pClient)->devPrivates, DRI2ClientEventsPrivateKey)) static int -ListAddDRI2ClientEvents(ClientPtr client, struct list *entry) +ListAddDRI2ClientEvents(ClientPtr client, struct xorg_list *entry) { DRI2ClientEventsPtr pClientPriv; pClientPriv = GetDRI2ClientEvents(client); @@ -547,12 +554,12 @@ ListAddDRI2ClientEvents(ClientPtr client, struct list *entry) return BadAlloc; } - list_add(entry, &pClientPriv->reference_list); + xorg_list_add(entry, &pClientPriv->reference_list); return 0; } static void -ListDelDRI2ClientEvents(ClientPtr client, struct list *entry) +ListDelDRI2ClientEvents(ClientPtr client, struct xorg_list *entry) { DRI2ClientEventsPtr pClientPriv; pClientPriv = GetDRI2ClientEvents(client); @@ -560,7 +567,7 @@ ListDelDRI2ClientEvents(ClientPtr client, struct list *entry) if (!pClientPriv) { return; } - list_del(entry); + xorg_list_del(entry); } static void @@ -574,7 +581,7 @@ radeon_dri2_client_state_changed(CallbackListPtr *ClientStateCallback, pointer d switch (pClient->clientState) { case ClientStateInitial: - list_init(&pClientEventsPriv->reference_list); + xorg_list_init(&pClientEventsPriv->reference_list); break; case ClientStateRunning: break; @@ -582,7 +589,7 @@ radeon_dri2_client_state_changed(CallbackListPtr *ClientStateCallback, pointer d case ClientStateRetained: case ClientStateGone: if (pClientEventsPriv) { - list_for_each_entry(ref, &pClientEventsPriv->reference_list, link) { + xorg_list_for_each_entry(ref, &pClientEventsPriv->reference_list, link) { ref->valid = FALSE; } } -- cgit v0.9.0.2-2-gbebe