Variable-length stack allocated arrays

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Jan 12 00:24:20 PST 2010


grauzone wrote:
> Andrei Alexandrescu wrote:
>> grauzone wrote:
>>> Andrei Alexandrescu wrote:
>>>> The idea is that the API offers a means to define and use temporary 
>>>> buffers without compromising memory safety. Even if you escape data 
>>>> allocated via getBuffer that persists after releaseBuffer, that will 
>>>> not cause undefined behavior. (It may, however, cause data to be 
>>>> overwritten because another call to getBuffer will reuse memory.) 
>>>> Leaks are also possible if you don't release the buffer. That can be 
>>>> solved by not offering getBuffer and releaseBuffer as they are, but 
>>>> instead only encapsulated in a struct with the appropriate 
>>>> constructor and destructor.
>>>
>>> That's an interesting point. You can have two things:
>>> 1. Correct memory managment (one can never access an object that's 
>>> supposed to be free'd)
>>> 2. Safe memory managment (event if you access an object that's 
>>> supposed to be free'd, it's memory safe)
>>>
>>> In safe mode, 1. can't be allowed, and 2. is better than nothing. In 
>>> normal D, I'd say 2. is quite useless, except as an debugging option.
>>
>> Normal D must be debuggable D.
> 
> That isn't the case right now and never will be.

Then if I were you and I really believed that, I wouldn't waste one more 
minute hanging out in this group.

Andrei



More information about the Digitalmars-d mailing list