[Mesa-dev] [PATCH 3/4] egl: Refactor errors for bad EGLSync attributes

Eric Engestrom eric.engestrom at imgtec.com
Wed Jul 13 09:22:35 UTC 2016


On Fri, Jul 08, 2016 at 03:44:20PM -0700, Chad Versace wrote:
> Move the error handling into a little helper function. This will keep
> the code clean when later adding error handling for attribute
> EGL_SYNC_NATIVE_FENCE_FD_ANDROID.
> 
> And fix the log message to work when EGLAttrib is 32-bit or 64-bit.
> ---
>  src/egl/main/eglsync.c | 31 +++++++++++++++----------------
>  1 file changed, 15 insertions(+), 16 deletions(-)
> 
> diff --git a/src/egl/main/eglsync.c b/src/egl/main/eglsync.c
> index 48714d1..e90aeb4 100644
> --- a/src/egl/main/eglsync.c
> +++ b/src/egl/main/eglsync.c
> @@ -67,11 +67,18 @@ _eglParseSyncAttribList(_EGLSync *sync, const EGLint *attrib_list)
>  }
>  
>  
> +static EGLint
> +badSyncAttrib(EGLAttrib attr)
> +{
> +   _eglLog(_EGL_DEBUG, "bad sync attribute 0x0*%" PRIxPTR,

I think you meant `... 0x%0*" PRIxPTR`

> +           2 * sizeof(attr), attr);
> +   return EGL_BAD_ATTRIBUTE;
> +}
> +
> +
>  static EGLint
>  _eglParseSyncAttribList64(_EGLSync *sync, const EGLAttrib *attrib_list)
>  {
> -   EGLint err = EGL_SUCCESS;
> -
>     if (!attrib_list)
>        return EGL_SUCCESS;
>  
> @@ -81,24 +88,16 @@ _eglParseSyncAttribList64(_EGLSync *sync, const EGLAttrib *attrib_list)
>  
>        switch (attr) {
>        case EGL_CL_EVENT_HANDLE_KHR:
> -         if (sync->Type == EGL_SYNC_CL_EVENT_KHR) {
> -            sync->CLEvent = val;
> -            break;
> -         }
> -         /* fall through */
> -      default:
> -         (void) val;
> -         err = EGL_BAD_ATTRIBUTE;
> +         if (sync->Type != EGL_SYNC_CL_EVENT_KHR)
> +            return badSyncAttrib(attr);
> +         sync->CLEvent = val;
>           break;
> -      }
> -
> -      if (err != EGL_SUCCESS) {
> -         _eglLog(_EGL_DEBUG, "bad sync attribute 0x%" PRIxPTR, attr);
> -         return err;
> +      default:
> +         return badSyncAttrib(attr);
>        }
>     }
>  
> -   return err;
> +   return EGL_SUCCESS;
>  }
>  
>  
> -- 
> 2.9.0.rc2


More information about the mesa-dev mailing list