id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc
1167,Think about resource management,guest,axel,"It is very easy to get a memory leak. For example these buttons will never get freed:
{{{
    replicateM_ 1234 $ do
        b <- buttonNew
        onStateChanged b $ \_ -> widgetGetSize b >>= print
}}}

You can correct this example with eventGetWindow, but that doesn't apply to signals.

The memory leaks in a typical app are small. However, avoiding these leaks may involve API changes so it's important to think about. I suggest, at least, an explicit ""objectUnref"" action that cancels the finalizer. Then app writers can take care of memory management.

As a nicer API, since a UI is just a tree, perhaps Containers could automatically manage the refs for their children.",task,new,normal,1.0,"general (Gtk+, Glib)",0.10.2,,,
