[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