What is the Correct way to Malloc in @nogc section?
weaselcat via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Feb 13 16:57:33 PST 2015
On Friday, 13 February 2015 at 22:55:27 UTC, anonymous wrote:
> On Thursday, 12 February 2015 at 23:52:41 UTC, Foo wrote:
>> This is something I've done recently.
>> Would be glad if my code will help you:
>> https://github.com/Dgame/m3
>> Especially the m3.d module could be useful for you.
>
> /* Class and Struct */
>
> emplace: You can't assume zero-initialization for structs.
> destruct: Is not memory-safe, and must not be marked @trusted.
>
> /* Array */
>
> make: You can't assume zero-initialization. T.sizeof is not the
> size of an element.
> reserve: Not safe (you're freeing the old memory), must not be
> @trusted.
> append: T.sizeof is not the size of an element. You're
> multiplying twice with T.sizeof; in `append`, and also in
> `reserve`.
> destruct: Not safe, must not be @trusted.
Low level memory management isn't easy.
Bugs like these wouldn't exist if D had decent smart pointer
implementations in its standard library. You seem knowledgeable
enough, care to lend a hand? ; )
More information about the Digitalmars-d-learn
mailing list