[PATCH] StringRef::copy should never copy empty strings

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 23 14:23:24 PDT 2016


Looks good - thanks!

(you might be able to write "(size-t)0" as "0u" instead)

On Wed, Mar 23, 2016 at 2:22 PM, Pete Cooper <peter_cooper at apple.com> wrote:

>
> On Mar 23, 2016, at 1:57 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
> Presumably you could just "return *this" (or "return StringRef()”)
>
> Ah yeah, StringRef() is better than what I had.  I do personally prefer it
> over ‘*this’ just because I like that data() will be nullptr.
>
>
> Perhaps you could test that the allocator is not invoked for that copy
> operation?
>
> Good point.  Added that now.
>
> Cheers
> Pete
>
>
>
> On Wed, Mar 23, 2016 at 11:36 AM, Pete Cooper <peter_cooper at apple.com>
> wrote:
>
>> Hi Mehdi, David
>>
>> This is a spin off from the discussion on Allocator.h and requesting that
>> we allocate 0 bytes.
>>
>> Independent from whatever gets decided on Allocate behaviour, I think it
>> would be best if StringRef::copy returns StringRef(nullptr, 0) whenever we
>> try to copy an empty string.  StringRef(“”) would also be fine if you
>> prefer.
>>
>> This makes that change and adds test to the unit test for the new
>> behavior.
>>
>> Cheers,
>> Pete
>>
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160323/cff60e44/attachment.html>


More information about the llvm-commits mailing list