> On Sep 6, 2016, at 5:27 PM, Darin Adler <da...@apple.com> wrote:
> 
>> On Sep 6, 2016, at 4:48 PM, Maciej Stachowiak <m...@apple.com> wrote:
>> 
>> STL smart pointers have a 0-argument reset for non-returning remove instead, 
>> and convention seems to be to use swap() or move() for the returning remove 
>> on a smart pointer. So an alternate possibility would be to use the above 
>> convention for collections, but make smart pointers have no remove+get 
>> operation at all.
> 
> Our modern smart pointers follow the standard library convention you mention 
> above.
> 
> It’s the peculiar cases that need names, such as:
> 
> “assert this RefPtr is non-null to turn it into a Ref&&”, currently named 
> releaseNonNull

RefPtr does also have regular release() though. I'm not sure if this is for a 
practical reason or just no one has fixed it yet.

I am not sure about the non-null case. A wacky solution, based on your 
suggestion for releaseImpl, would be to have a nonNull method which asserts the 
pointer is not null and then returns a self reference, so you'd do 
move(ref.nonNull()).

> 
> “release the RefPtr inside the String”, currently named releaseImpl(), but 
> another possibility would be to have impl() be RefPtr<StringImpl>& instead of 
> a StringImpl*, so you could do move(string.impl()) instead of 
> string.releaseImpl().

That seems pretty reasonable.

Regards,
Maciej



_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to