
On Tue, Dec 19, 2006 at 04:35:00PM -0500, Daniel Veillard wrote:
On Tue, Dec 19, 2006 at 07:26:26PM +0000, Daniel P. Berrange wrote:
On Tue, Dec 19, 2006 at 02:05:32PM -0500, Daniel Veillard wrote:
+ value = malloc(sizeof(virConfValue)); + value->str = strdup(filename); + free(value); + return (-1);
This makes me think about an idea I had to swicth all allocations in libvirt to reuse xmlMalloc/xmlFree/xmlStrdup . The reasons are the following: - libxml2 is a mandatory module - libxml2 memory debug allow to track easilly memory allocations and check we never leak, this can be really useful - libxml2 memory routines can also be overiden by the library client to use a different allocator which in some circumstances can be really useful
My prime motivation is debug but reuse of libxml2 facilities is not neglectible.
Sounds reasonble. I'm not familiar with libxml2 debug stuff though - does it give more info that we can get from valgrind ?
Frankly no, but there isn't the same cost penalty. Also one can track a given piece of memory, for example under gdb. Documentation at: http://xmlsoft.org/xmlmem.html
Actually there is one very useful usecase - multi threading. Valgrind is not multi-threaded at all - it more or less just runs each thread in turn for a few instructions before switching to next thread & so on. Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|