From 1c6a149a32aab7d4f57f60a4d1e9f2c134081d48 Mon Sep 17 00:00:00 2001 From: stefanbidi Date: Thu, 26 Jan 2012 01:40:12 +0000 Subject: [PATCH] Do not call unum_format* more than once. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34634 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 4 ++++ Source/NSNumberFormatter.m | 11 +++-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1a49c8d4f..764ae25e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-01-25 Stefan Bidigaray + + * Source/NSNumberFormatter.m: Call unum_format* only once. + 2012-01-25 Richard Frith-Macdonald * Source/GSSocketStream.m: fix possible nul pointer dereference. diff --git a/Source/NSNumberFormatter.m b/Source/NSNumberFormatter.m index 4598f2e86..48741cc29 100644 --- a/Source/NSNumberFormatter.m +++ b/Source/NSNumberFormatter.m @@ -1055,20 +1055,15 @@ static NSUInteger _defaultBehavior = NSNumberFormatterBehavior10_4; #define STRING_FROM_NUMBER(function, number) do \ { \ - UChar *outStr = buffer; \ UErrorCode err = U_ZERO_ERROR; \ int32_t len; \ NSString *result; \ \ - len = function (internal->_formatter, number, outStr, \ + len = function (internal->_formatter, number, buffer, \ BUFFER_SIZE, NULL, &err); \ if (len > BUFFER_SIZE) \ - outStr = NSZoneMalloc ([self zone], len * sizeof(UChar));\ - err = U_ZERO_ERROR; \ - function (internal->_formatter, number, outStr, BUFFER_SIZE, NULL, &err); \ - result = [NSString stringWithCharacters: outStr length: len]; \ - if (len > BUFFER_SIZE) \ - NSZoneFree ([self zone], outStr); \ + len = BUFFER_SIZE; \ + result = [NSString stringWithCharacters: buffer length: len]; \ return result; \ } while (0)