glx/dri3: rework __DRIextension handling
authorEmil Velikov <emil.l.velikov@gmail.com>
Sun, 16 Mar 2014 01:17:46 +0000 (01:17 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Mon, 28 Apr 2014 18:13:37 +0000 (19:13 +0100)
Use a const array with the extensions, rather than assigning each
one to a fixed size array at runtime.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/glx/dri3_glx.c
src/glx/dri3_priv.h

index 653b1e5c5f617b93660172fe828a89a2f6b9b956..2a178d556101468a369884febce203d17e10476b 100644 (file)
@@ -1307,6 +1307,12 @@ static const __DRIimageLoaderExtension imageLoaderExtension = {
    .flushFrontBuffer    = dri3_flush_front_buffer,
 };
 
+static const __DRIextension *loader_extensions[] = {
+   &imageLoaderExtension.base,
+   &systemTimeExtension.base,
+   NULL
+};
+
 /** dri3_swap_buffers
  *
  * Make the current back buffer visible using the present extension
@@ -1689,8 +1695,7 @@ dri3_create_screen(int screen, struct glx_display * priv)
 
    psc->driScreen =
       psc->image_driver->createNewScreen2(screen, psc->fd,
-                                          (const __DRIextension **)
-                                          &pdp->loader_extensions[0],
+                                          pdp->loader_extensions,
                                           extensions,
                                           &driver_configs, psc);
 
@@ -1807,7 +1812,6 @@ _X_HIDDEN __GLXDRIdisplay *
 dri3_create_display(Display * dpy)
 {
    struct dri3_display                  *pdp;
-   int                                  i;
    xcb_connection_t                     *c = XGetXCBConnection(dpy);
    xcb_dri3_query_version_cookie_t      dri3_cookie;
    xcb_dri3_query_version_reply_t       *dri3_reply;
@@ -1863,13 +1867,8 @@ dri3_create_display(Display * dpy)
    pdp->base.createScreen = dri3_create_screen;
 
    loader_set_logger(dri_message);
-   i = 0;
-
-   pdp->loader_extensions[i++] = &imageLoaderExtension.base;
-
-   pdp->loader_extensions[i++] = &systemTimeExtension.base;
 
-   pdp->loader_extensions[i++] = NULL;
+   pdp->loader_extensions = loader_extensions;
 
    return &pdp->base;
 no_extension:
index 316e313153262b64158d8dd9468e27b1c65232f3..38463310570cdc1061896d5b882c787efb953d08 100644 (file)
@@ -106,7 +106,7 @@ struct dri3_display
 {
    __GLXDRIdisplay base;
 
-   const __DRIextension *loader_extensions[8];
+   const __DRIextension **loader_extensions;
 
    /* DRI3 bits */
    int dri3Major;