>> IntersectionDetector::~IntersectionDetector()
>> {
>>   // FIXME: Should delete tree here but need to include GNode properly.
>>   // FIXME: (warning: invalid use of incomplete type 'struct _GNode')
>>
>>   //if (tree)
>>   //  delete (GNode*) tree;
>> }
>>
>> I commented it out since I couldn't get it to compile. (Didn't have
>> time before the release to figure out what goes wrong.)
>>
>> Note that bugs should be assigned to [email protected], not
>> [EMAIL PROTECTED] (which is an alias for /dev/null).
> 
> Well... this is not the entire story. The leaves (pointers to bounding 
> boxes) of the tree must be explicitly freed as well: 
> gts_bb_tree_destroy(tree, 1). This still leaves some kbytes reachable 
> (but not freed though).

After a bit of poking around, it seems like the glib slice allocator is 
not finalizing and freeing all its memory. Setting the environment 
variable G_SLICE=always-malloc reduces the problem so that valgrind 
reports "still reachable: 1,816 bytes" independent of the mesh size. Has 
anyone seen this kind of issue with GSList before? The Glib docs do not 
indicate a way to purge the memory held by the memory manager.

    Dag
_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to