[PATCH 1/2] glx: Dynamically compute attribute slot in GetDrawableAttributes

Adam Jackson ajax at redhat.com
Tue Dec 2 12:01:43 PST 2014


No functional change.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 glx/glxcmds.c | 49 +++++++++++++++++++++++++------------------------
 1 file changed, 25 insertions(+), 24 deletions(-)

diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index 6d4b0ee..2240a5b 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -1916,42 +1916,43 @@ DoGetDrawableAttributes(__GLXclientState * cl, XID drawId)
     xGLXGetDrawableAttributesReply reply;
     __GLXdrawable *pGlxDraw;
     CARD32 attributes[14];
-    int numAttribs = 0, error;
+    int num = 0, error;
 
     if (!validGlxDrawable(client, drawId, GLX_DRAWABLE_ANY,
                           DixGetAttrAccess, &pGlxDraw, &error))
         return error;
 
-    attributes[0] = GLX_TEXTURE_TARGET_EXT;
-    attributes[1] = pGlxDraw->target == GL_TEXTURE_2D ? GLX_TEXTURE_2D_EXT :
+    attributes[2*num] = GLX_TEXTURE_TARGET_EXT;
+    attributes[2*num+1] = pGlxDraw->target == GL_TEXTURE_2D ?
+        GLX_TEXTURE_2D_EXT :
         GLX_TEXTURE_RECTANGLE_EXT;
-    numAttribs++;
-    attributes[2] = GLX_Y_INVERTED_EXT;
-    attributes[3] = GL_FALSE;
-    numAttribs++;
-    attributes[4] = GLX_EVENT_MASK;
-    attributes[5] = pGlxDraw->eventMask;
-    numAttribs++;
-    attributes[6] = GLX_WIDTH;
-    attributes[7] = pGlxDraw->pDraw->width;
-    numAttribs++;
-    attributes[8] = GLX_HEIGHT;
-    attributes[9] = pGlxDraw->pDraw->height;
-    numAttribs++;
-    attributes[10] = GLX_FBCONFIG_ID;
-    attributes[11] = pGlxDraw->config->fbconfigID;
-    numAttribs++;
+    num++;
+    attributes[2*num] = GLX_Y_INVERTED_EXT;
+    attributes[2*num+1] = GL_FALSE;
+    num++;
+    attributes[2*num] = GLX_EVENT_MASK;
+    attributes[2*num+1] = pGlxDraw->eventMask;
+    num++;
+    attributes[2*num] = GLX_WIDTH;
+    attributes[2*num+1] = pGlxDraw->pDraw->width;
+    num++;
+    attributes[2*num] = GLX_HEIGHT;
+    attributes[2*num+1] = pGlxDraw->pDraw->height;
+    num++;
+    attributes[2*num] = GLX_FBCONFIG_ID;
+    attributes[2*num+1] = pGlxDraw->config->fbconfigID;
+    num++;
     if (pGlxDraw->type == GLX_DRAWABLE_PBUFFER) {
-        attributes[12] = GLX_PRESERVED_CONTENTS;
-        attributes[13] = GL_TRUE;
-        numAttribs++;
+        attributes[2*num] = GLX_PRESERVED_CONTENTS;
+        attributes[2*num+1] = GL_TRUE;
+        num++;
     }
 
     reply = (xGLXGetDrawableAttributesReply) {
         .type = X_Reply,
         .sequenceNumber = client->sequence,
-        .length = numAttribs << 1,
-        .numAttribs = numAttribs
+        .length = num << 1,
+        .numAttribs = num
     };
 
     if (client->swapped) {
-- 
1.9.3



More information about the xorg-devel mailing list