[PATCH] Introduce cxstring::createEmpty()

Dmitri Gribenko gribozavr at gmail.com
Fri Feb 1 08:40:17 PST 2013


On Thu, Jan 31, 2013 at 3:15 AM, Argyrios Kyrtzidis <akyrtzi at gmail.com> wrote:
> On Jan 28, 2013, at 3:42 PM, Dmitri Gribenko <gribozavr at gmail.com> wrote:
>
>> Hello Argyrios & cfe-commits,
>>
>> Here's the first step of the refactoring.  Important points are:
>>
>> (1) the name of the function -- we can repaint it whatever color you like;
>>
>> (2) a slight behavior change.  We used to differentiate NULL and empty
>> "" strings.  This does not make a lot of sense (and the difference was
>> never documented), so I chose to normalize to empty "" strings, since
>> this eliminates a NULL check in the user code.  (But existing code is
>> already polluted with those checks...)
>
> As I mentioned in cfe-dev's  "Refactoring internal CXString APIs" I'm uncomfortable with breaking compatibility with clients.
>
> Also, if we are going to standardize on what string should be returned for the "invalid case", it seems to me that NULL is a better option, CXString is a very general API and an empty string is a potential valid return.
> How about we keep current behavior but for new APIs we standardize on using createNull() for the "invalid" cases ?

Thank you for the review.  I agree that compatibility is of high
importance.  I have committed createNull()/createEmpty() in r174173,
r174174.  I've added an explanation in r174195, please tweak the
comment if you have a better wording.

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/



More information about the cfe-commits mailing list