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

Pete Cooper via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 23 14:22:24 PDT 2016


> 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 <mailto: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/4168acc2/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stringref.patch
Type: application/octet-stream
Size: 1343 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160323/4168acc2/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160323/4168acc2/attachment-0001.html>


More information about the llvm-commits mailing list