I don't see *how* we can clean it up. We could register an atexit handler
which tears down everybody's classes, but then we're just doing work for no
reason: the OS will clean up our memory in any case.

The issue seems to be "I'm using valgrind and it mentions a lot of
'possibly lost' data." In which case, we should probably improve this
output -- perhaps keep more references around or use valgrind macros so it
doesn't confuse it that much.

In the meantime, you can use a valgrind suppressions file. I thought we had
a maintained one in glib, but I can't find it right now, so I'll give you
the generic one we use for the gjs test mechanism.

https://git.gnome.org/browse/gjs/tree/installed-tests/extra/gjs.supp

On Tue, Feb 10, 2015 at 1:34 AM, John Emmas <j...@creativepost.co.uk> wrote:

> On 10/02/2015 08:37, Norman, Anders wrote:
>
>> The base class is simply never cleaned up. Typical types registered with
>>> GType are static, meaning they aren't ever cleaned up for the entire
>>> duration of the process.
>>>
>>> Why do you need to clean up the type?
>>>
>> I'm making a framework which other developers will use to create
>> applications. Yes, I can tell the developers to ignore the leak, but I
>> think the question should be the other way around: Why do you need to leak
>> this memory?
>>
>>
> As someone else who's previously complained about glib's memory leaks,
> I'll admit that I'm with Anders on this one.
>
> Okay - the developers are technically correct in saying that these
> particular leaks don't (of themselves) cause a problem.  The problem is
> that they make it extremely difficult to find genuine leaks in one's own
> code.  If we were only talking about a few leaks here and there (in glib)
> that might be workable - but in fact, glib has many hundreds of such
> leaks.  This makes it near impossible to find other leaks - even if you
> have leak detection software available.
>
> And here's an even worse scenario...  a program allocates some memory,
> then frees it but then carries on accessing the freed memory.  MSVC is at
> least helpful in this respect - since your program will crash on any
> machine you care to run it on.  But gcc is much too tolerant in that
> situation.  So what you end up with is an app that's troublesome and
> unreliable on one user's machine - and yet it seems to run perfectly on
> somebody else's.
>
> In ANY glib based app, finding problems like these is made unnecessarily
> difficult - just because of the sheer number of leaks in glib itself.
> Surely that's a good enough reason for getting rid of them?
>
> John
>
> _______________________________________________
> gtk-list mailing list
> gtk-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-list
>



-- 
  Jasper
_______________________________________________
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to