[PATCH v2 1/2] compositor: Propagate errors from module_init

Derek Foreman derekf at osg.samsung.com
Tue Dec 9 10:55:03 PST 2014


On 09/12/14 12:29 PM, Ondřej Majerech wrote:
> On Tue, 09 Dec 2014 10:19:22 -0600
> Derek Foreman <derekf at osg.samsung.com> wrote:
> 
>> On 05/12/14 07:49 PM, Ondřej Majerech wrote:
>>> load_modules currently ignores errors signalled by both
>>> weston_load_module and module_init, and instead always returns 0.
>>> Its return value appears to be checked in callers, so we most
>>> likely want to propagate any errors.
>>>
>>> Signed-off-by: Ondřej Majerech <majerech.o at gmail.com>
>>> ---
>>>  src/compositor.c | 6 ++++--
>>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/src/compositor.c b/src/compositor.c
>>> index 53f6220..8dddd67 100644
>>> --- a/src/compositor.c
>>> +++ b/src/compositor.c
>>> @@ -4423,8 +4423,10 @@ load_modules(struct weston_compositor *ec,
>>> const char *modules, end = strchrnul(p, ',');
>>>  		snprintf(buffer, sizeof buffer, "%.*s", (int) (end
>>> - p), p); module_init = weston_load_module(buffer, "module_init");
>>> -		if (module_init)
>>> -			module_init(ec, argc, argv);
>>> +		if (!module_init)
>>> +			return -1;
>>> +		if (module_init(ec, argc, argv) < 0)
>>> +			return -1;
>>
>> This looks like a good idea to me - wouldn't mind seeing a
>> weston_log() here to let us know what failed and why, but even so:
> 
> weston_load_module already says what failed, so no need to report that
> again. And for an error coming from module_init, you don't really know
> what the problem might be (other than that the initialisation has
> failed), so I think it should be the job of module_init to report
> what's wrong. 

A-ha, you are correct.  :)



More information about the wayland-devel mailing list