[Libreoffice] [REVIEW 3-4] Fix for fdo#39589

Kohei Yoshida kohei.yoshida at gmail.com
Wed Nov 23 23:13:57 PST 2011


On Thu, 2011-11-24 at 07:50 +0100, Lionel Elie Mamane wrote:
> On Wed, Nov 23, 2011 at 06:53:53PM -0500, Kohei Yoshida wrote:
> 
> > I'd like to have
> 
> > http://cgit.freedesktop.org/libreoffice/core/commit/?id=0215f8b19451ab67c7fdaf91f2da8298a9b89c47
> 
> > cherry-picked to the 3-4 branch.  It fixes
> 
> > https://bugs.freedesktop.org/show_bug.cgi?id=39589
> 
> I see how ulimit_cast is the wrong choice there, but:
> 
> If I understand well, static_cast<unsigned int>(a) where a is a signed
> int returns a+2^n where n is the length of int in bits.
> 
> For example, for 32 bit ints, static_cast<unsigned int>(-1) is
> 2^32-1.
> 
> Why is that the best solution, rather than 0, which as far as I
> understand, limit_cast<unsigned int>(a) would use?

Both are 32-bit integers.  We are casting long to unsigned long.  And
since the original value is a cell position, it is never negative.

Plus, I don't like those "smart" casters which apparently do wrong
things sometimes and IMO bit unclear how they are supposed to be used,
and apparently with hidden gotchas.

Also, I never said it was the best solution.  Rather, it's better than
the current (which "casts" 0 to -1 or 0xFFFFFFFF).  To me, that's enough
of an argument but other people may disagree.  *shrug*

Kohei

-- 
Kohei Yoshida, LibreOffice hacker, Calc



More information about the LibreOffice mailing list