DIP1028 - Rationale for accepting as is

Steven Schveighoffer schveiguy at gmail.com
Sat May 23 12:15:55 UTC 2020


On 5/22/20 8:05 PM, Walter Bright wrote:
> On 5/22/2020 10:54 AM, Atila Neves wrote:
>>> BTW, you should fix that invalid attribute, freeing a pointer is 
>>> never @safe unless you can guarantee nobody else has a copy of that 
>>> pointer (and considering it's passed by value, the CALLER still has 
>>> that pointer!)
>>
>> You're completely right.
> 
> @live is intended to fix that!
> 
> To get ahead of the curve, annotate pointer parameters with `scope` if 
> you don't intend to transfer ownership to the callee. Better yet, use 
> `ref` instead of pointer parameters where possible.

These are extern(C) functions written in C. How does one apply @live to 
that? You can't change it to ref in the prototype.

Besides, a deallocation function shouldn't use @live, it's about to 
destroy the pointer.

-Steve


More information about the Digitalmars-d-announce mailing list