Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


On Monday 21 of January 2013, Stephan Bergmann wrote:
On 01/21/2013 06:05 PM, Lubos Lunak wrote:
On Monday 21 of January 2013, Stephan Bergmann wrote:
While the gotcha of printing a large unsigned value as a negative value
thanks to calling rtl_ustr_valueOfInt64 internally can be a problem in
some call sites, others might be fine with producing just some sort of
informative value and won't mind generating negative output.  If we
would want to force the latter into using explicit casts to sal_Int64
(in case they don't do already anyway), wouldn't it be better to make
the relevant large unsigned overloads "= delete"?

  That would mean blocking out all the values of the type, not just the
problematic ones. Given that a number of system typedefs are internally
unsigned integers despite all the signed vs unsigned trouble this causes,
usage of the type is much more likely than usage of a problematic value
of the type, so IMO it makes more sense to cater to realistic usage
rathen than handle more problematic but next to impossible scenarios.

I was thinking about scenarios like passing a sal_uIntPtr to
rtl::OUString::number.  If that sal_uIntPtr is derived from a pointer in
the obvious way, it could, depending on platform, be highly likely that
it triggers the assert.

 I did not think of that. It's probably still rather unlikely, but at least 
realistically possible. I think the simplest solution is just adding another 
valueOf helper that handles unsigned 64bit integer.

-- 
 Lubos Lunak
 l.lunak@suse.cz

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.