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

Ondřej Majerech majerech.o at gmail.com
Tue Dec 9 10:29:30 PST 2014


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. 

> 
> Reviewed-by: Derek Foreman <derekf at osg.samsung.com>
> 
> >  		p = end;
> >  		while (*p == ',')
> >  			p++;
> > 
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel



More information about the wayland-devel mailing list