[Mesa-dev] [PATCH 1/2] dri: Use designated initializers for DRI extension structs
Matt Turner
mattst88 at gmail.com
Mon Nov 19 14:14:24 PST 2012
On Mon, Nov 19, 2012 at 1:53 PM, Chad Versace
<chad.versace at linux.intel.com> wrote:
> The dri directory is compiled with -std=c99. There is no excuse to not use
> designated initializers.
>
> As a nice benefit, the code is now more friendly to grep. Without
> designated initializers, psychic prowess is required to find the
> initialization of DRI extension function pointers with grep. I have
> observed several people, when they first encounter the DRI code, fail at
> statically chasing the DRI function pointers due to this problem.
>
> Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
> ---
> src/mesa/drivers/dri/common/dri_util.c | 57 ++++++++++++++++++----------------
> 1 file changed, 30 insertions(+), 27 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
> index 983bbea..917b946 100644
> --- a/src/mesa/drivers/dri/common/dri_util.c
> +++ b/src/mesa/drivers/dri/common/dri_util.c
> @@ -563,40 +563,43 @@ dri2GetAPIMask(__DRIscreen *screen)
>
> /** Core interface */
> const __DRIcoreExtension driCoreExtension = {
> - { __DRI_CORE, __DRI_CORE_VERSION },
> - NULL,
> - driDestroyScreen,
> - driGetExtensions,
> - driGetConfigAttrib,
> - driIndexConfigAttrib,
> - NULL,
> - driDestroyDrawable,
> - NULL,
> - NULL,
> - driCopyContext,
> - driDestroyContext,
> - driBindContext,
> - driUnbindContext
> + .base = { __DRI_CORE, __DRI_CORE_VERSION },
> +
> + .createNewScreen = NULL,
> + .destroyScreen = driDestroyScreen,
> + .getExtensions = driGetExtensions,
> + .getConfigAttrib = driGetConfigAttrib,
> + .indexConfigAttrib = driIndexConfigAttrib,
> + .createNewDrawable = NULL,
> + .destroyDrawable = driDestroyDrawable,
> + .swapBuffers = NULL,
> + .createNewContext = NULL,
> + .copyContext = driCopyContext,
> + .destroyContext = driDestroyContext,
> + .bindContext = driBindContext,
> + .unbindContext = driUnbindContext
> };
>
> /** DRI2 interface */
> const __DRIdri2Extension driDRI2Extension = {
> - { __DRI_DRI2, 3 },
> - dri2CreateNewScreen,
> - dri2CreateNewDrawable,
> - dri2CreateNewContext,
> - dri2GetAPIMask,
> - dri2CreateNewContextForAPI,
> - dri2AllocateBuffer,
> - dri2ReleaseBuffer,
> - dri2CreateContextAttribs
> + .base = { __DRI_DRI2, 3 },
> +
> + .createNewScreen = dri2CreateNewScreen,
> + .createNewDrawable = dri2CreateNewDrawable,
> + .createNewContext = dri2CreateNewContext,
> + .getAPIMask = dri2GetAPIMask,
> + .createNewContextForAPI = dri2CreateNewContextForAPI,
> + .allocateBuffer = dri2AllocateBuffer,
> + .releaseBuffer = dri2ReleaseBuffer,
> + .createContextAttribs = dri2CreateContextAttribs
> };
>
> const __DRI2configQueryExtension dri2ConfigQueryExtension = {
> - { __DRI2_CONFIG_QUERY, __DRI2_CONFIG_QUERY_VERSION },
> - dri2ConfigQueryb,
> - dri2ConfigQueryi,
> - dri2ConfigQueryf,
> + .base = { __DRI2_CONFIG_QUERY, __DRI2_CONFIG_QUERY_VERSION },
> +
> + .configQueryb = dri2ConfigQueryb,
> + .configQueryi = dri2ConfigQueryi,
> + .configQueryf = dri2ConfigQueryf,
> };
>
> void
> --
> 1.7.11.7
I remember getting really annoyed trying to read this code before, so
yes please.
Reviewed-by: Matt Turner <mattst88 at gmail.com>
More information about the mesa-dev
mailing list