[PATCH] Fix two more C99 initialization mistakes using members of same struct

Alan Coopersmith alan.coopersmith at oracle.com
Sat Jul 14 10:07:43 PDT 2012


Similar to 34cf559bcf99dad, use temporary variables instead of
referencing members of the struct being initialized in the middle
of the initialization.

Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 Xext/panoramiX.c |    5 +++--
 Xext/xvmc.c      |    8 +++++---
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index 5653c08..1c7197d 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -1056,11 +1056,12 @@ int
 ProcXineramaQueryScreens(ClientPtr client)
 {
     /* REQUEST(xXineramaQueryScreensReq); */
+    CARD32 number = (noPanoramiXExtension) ? 0 : PanoramiXNumScreens;
     xXineramaQueryScreensReply rep = {
         .type = X_Reply,
         .sequenceNumber = client->sequence,
-        .length = bytes_to_int32(rep.number * sz_XineramaScreenInfo),
-        .number = (noPanoramiXExtension) ? 0 : PanoramiXNumScreens
+        .length = bytes_to_int32(number * sz_XineramaScreenInfo),
+        .number = number
     };
 
     REQUEST_SIZE_MATCH(xXineramaQueryScreensReq);
diff --git a/Xext/xvmc.c b/Xext/xvmc.c
index 8d93cc3..5f0123b 100644
--- a/Xext/xvmc.c
+++ b/Xext/xvmc.c
@@ -135,6 +135,7 @@ ProcXvMCListSurfaceTypes(ClientPtr client)
     xvmcSurfaceInfo info;
     XvMCAdaptorPtr adaptor = NULL;
     XvMCSurfaceInfoPtr surface;
+    int num_surfaces;
 
     REQUEST(xvmcListSurfaceTypesReq);
     REQUEST_SIZE_MATCH(xvmcListSurfaceTypesReq);
@@ -154,16 +155,17 @@ ProcXvMCListSurfaceTypes(ClientPtr client)
         }
     }
 
+    num_surfaces = (adaptor) ? adaptor->num_surfaces : 0;
     rep = (xvmcListSurfaceTypesReply) {
         .type = X_Reply,
         .sequenceNumber = client->sequence,
-        .num = (adaptor) ? adaptor->num_surfaces : 0,
-        .length = bytes_to_int32(rep.num * sizeof(xvmcSurfaceInfo)),
+        .num = num_surfaces,
+        .length = bytes_to_int32(num_surfaces * sizeof(xvmcSurfaceInfo)),
     };
 
     WriteToClient(client, sizeof(xvmcListSurfaceTypesReply), &rep);
 
-    for (i = 0; i < rep.num; i++) {
+    for (i = 0; i < num_surfaces; i++) {
         surface = adaptor->surfaces[i];
         info.surface_type_id = surface->surface_type_id;
         info.chroma_format = surface->chroma_format;
-- 
1.7.9.2



More information about the xorg-devel mailing list