[waffle] [PATCH 2/6] wflinfo: Cleanup signature of wflinfo_try_create_context()

Emil Velikov emil.l.velikov at gmail.com
Mon May 5 10:40:19 PDT 2014

On 05/05/14 17:31, Chad Versace wrote:
> On Sat, May 03, 2014 at 12:36:49AM +0100, Emil Velikov wrote:
>> On 29/04/14 04:43, Chad Versace wrote:
>>> The function creates and returns two objects: a context and a config.
>>> The context is the function's return value, and the config is an out
>>> parameter.
>>> Functions with asymmetric returns, I find awkard. Fix the signature to
>>> return both objects as out parameters.
>> Hi Chad,
>> Rather silly question (as I'm getting through the codebase).
>> Wouldn't it be better if use return int over bool ? The function name does not
>> imply that a bool is returned, plus it gives us the flexibility of returning
>> appropriate (currently unneeded) errno.
> In designing the Waffle's public API, I tried to follow the example of
> EGL, which returns either NULL or false on failure. This design then
> affected Waffle's internal APIs too.
> In retrospect, I think choosing to model Waffle's error reporting on
> EGL's model may have been a clumsy choice. If Waffle 2.0 ever happens,
> then that would be a good time to reconsider the approach.
> In general, returning int rather than bool does provide more flexibility
> for reporting status, but I chose to use bool in this patch to be
> consistent with the rest of Waffle.
> If waffle_try_create_context() returned an enum that indicated the cause
> of failure, then we could possibly eliminate the exit_on_fail parameter.
> I would welcome such a cleanup.
> I wish the public API, though, to remain consistent in how it reports
> error. Return NULL or false, then the user inspects the
> waffle_error_info if he wants more information, similar to
> eglGetError().

To be perfectly honest I was not expecting the internal interface to be
modelled similar to EGL. Thanks for the comprehensive explanation.

/me puts a pair of "api's can be different from what you expect" goggles and
carries on.


More information about the waffle mailing list