On Tue, Dec 22, 2015 at 4:38 AM, Oded Gabbay <oded.gab...@gmail.com> wrote:

> On Sat, Dec 12, 2015 at 8:06 PM,  <spit...@gmail.com> wrote:
> > From: Bill Spitzak <spit...@gmail.com>
> >
> > The other filters do not check for x being in range, so there is
> > no reason for cubic to do so.
>
> This argument is a bit problematic.
> We could also argue that this filter was actually implemented
> correctly/more robust and we should add checks for x to the other
> filters.
>
> I fail to see how this saves us much except from removing a condition
> in a very specific path.
>
> Do you argue that ax will never ever be >=2 ?
>

Yes, because if that could happen, then out-of-range x could also be sent
to the other filter functions that are not doing the range check.

Adding range checks to all the other filters (especially the ones that
return constants) would add a bunch of conditions that are never used.


>
>    Oded
>
> > ---
> >  pixman/pixman-filter.c | 16 +++++++---------
> >  1 file changed, 7 insertions(+), 9 deletions(-)
> >
> > diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c
> > index 7e10108..bf9dce3 100644
> > --- a/pixman/pixman-filter.c
> > +++ b/pixman/pixman-filter.c
> > @@ -109,18 +109,16 @@ general_cubic (double x, double B, double C)
> >
> >      if (ax < 1)
> >      {
> > -       return ((12 - 9 * B - 6 * C) * ax * ax * ax +
> > -               (-18 + 12 * B + 6 * C) * ax * ax + (6 - 2 * B)) / 6;
> > -    }
> > -    else if (ax >= 1 && ax < 2)
> > -    {
> > -       return ((-B - 6 * C) * ax * ax * ax +
> > -               (6 * B + 30 * C) * ax * ax + (-12 * B - 48 * C) *
> > -               ax + (8 * B + 24 * C)) / 6;
> > +       return (((12 - 9 * B - 6 * C) * ax +
> > +                (-18 + 12 * B + 6 * C)) * ax * ax +
> > +               (6 - 2 * B)) / 6;
> >      }
> >      else
> >      {
> > -       return 0;
> > +       return ((((-B - 6 * C) * ax +
> > +                (6 * B + 30 * C)) * ax +
> > +               (-12 * B - 48 * C)) * ax +
> > +               (8 * B + 24 * C)) / 6;
> >      }
> >  }
> >
> > --
> > 1.9.1
> >
> > _______________________________________________
> > Pixman mailing list
> > Pixman@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/pixman
>
_______________________________________________
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to