improving empty handling in tools::Rectangle

Luboš Luňák l.lunak at collabora.com
Tue May 7 11:42:27 UTC 2019


On Tuesday 07 of May 2019, Noel Grandin wrote:
> On 2019/05/07 1:06 PM, Luboš Luňák wrote:
> >   The class can't be both, internally it stores just one value, and there
> > are functions such as the Size ctor or operator<< that do take a side
> > (although in line with the general stupidity, different functions take a
> > different side). And while the class gets used extensively, the usage can
> > be fixed mechanically.
>
> I'd be happy to be proven wrong, but I'm not aware of any mechanical fixes.

 A clang plugin that rewrites all "getWidth()" to "(GetWidth() + 1)" (or the 
other way around).

> And I would not be surprised to find code that calls both getWidth() and
> GetWidth() on the same object.

 The way I see it, that doesn't matter. The class internally stores 4 
coordinates, the problem is just the interpretation of width/height. But 
that's purely a matter of definition, not of actual code. If the fix would be 
(let's say) defining that the class uses closed range and dumping getWidth(), 
then changing all getWidth() to (GetWidth() + 1) will keep the functionality 
exactly the same. It may lead to some code looking silly, but how should that 
break anything if the functionality doesn't change?

-- 
 Luboš Luňák
 l.lunak at collabora.com


More information about the LibreOffice mailing list