D wrapper classes leak memory. Next steps?

Marco Leise via Digitalmars-d digitalmars-d at puremagic.com
Sat Nov 1 11:10:15 PDT 2014


Am Fri, 31 Oct 2014 13:16:15 +0000
schrieb "eles" <eles at eles.com>:

> On Friday, 31 October 2014 at 10:06:51 UTC, Ola Fosheim Grøstad 
> wrote:
> > On Friday, 31 October 2014 at 09:58:41 UTC, ketmar via 
> > Digitalmars-d wrote:
> >> if you have something concrete in mind, write ER or forum 
> >> post, so we can destroy it. ;-)
> 
> > - make uniqe_ptr a language builtin
> 
> I would go with this by default for all pointers/references.
> 
> Something that I read here:
> 
> https://news.ycombinator.com/item?id=7650917
> 
> My feeling too.
> 
> If you need more owners for a resource, then explicitly ask for.

In case of a onDraw callback the object will be passed as a
parameter into the drawing function. unique_ptr doesn't solve
this. In the particular case of callbacks from C libraries
that give us opaque "context" pointers we want to wrap with D
classes we can use either of:

- reference counted object (doesn't exist in D)
- unique_ptr (requires "scope" to be implemented)
- Scoped ?

Maybe Scoped wasn't explored enough for callbacks in GtkD.
But yeah, you'd still need one of the others to deal with
external resources where the lifetime is not a specific stack
frame.

-- 
Marco



More information about the Digitalmars-d mailing list