Hi,
Toivo reported memory leaks. The compression code isn't leaking anymore.
The leaks come from:
Memory leaked: 20074 bytes (1.91%); potentially leaked: 0 bytes (0%)
MLK: 5712 bytes leaked in 357 blocks
This memory was allocated from:
malloc [rtlib.o]
__bUiLtIn_nEw [new1.cc]
__builtin_new [rtlib.o]
Dictionary::Add(const String&,Object*) [Dictionary.cc:214]
Retriever::IsValidURL(char*) [Retriever.cc:715]
Retriever::got_href(URL&,const char*,int) [Retriever.cc:1204]
HTML::do_tag(Retriever&,String&) [HTML.cc:805]
HTML::parse(Retriever&,URL&) [HTML.cc:315]
Retriever::RetrievedDocument(Document&,char*,DocumentRef*)
[Retriever.cc:649]
Retriever::parse_url(URLRef&) [Retriever.cc:511]
Retriever::Start() [Retriever.cc:336]
main [htdig.cc:280]
_start [crt1.o]
Block of 16 bytes (357 times); last block at 0x13b6c28
MLK: 1904 bytes leaked in 119 blocks
This memory was allocated from:
malloc [rtlib.o]
__bUiLtIn_nEw [new1.cc]
__builtin_new [rtlib.o]
StringList::Create(const char*,char*) [StringList.cc:50]
Retriever::IsValidURL(char*) [StringList.h:43]
Retriever::got_href(URL&,const char*,int) [Retriever.cc:1204]
HTML::do_tag(Retriever&,String&) [HTML.cc:805]
HTML::parse(Retriever&,URL&) [HTML.cc:315]
Retriever::RetrievedDocument(Document&,char*,DocumentRef*)
[Retriever.cc:649]
Retriever::parse_url(URLRef&) [Retriever.cc:511]
Retriever::Start() [Retriever.cc:336]
main [htdig.cc:280]
_start [crt1.o]
Block of 16 bytes (119 times); last block at 0x13b2528
MLK: 1904 bytes leaked in 119 blocks
This memory was allocated from:
malloc [rtlib.o]
__bUiLtIn_nEw [new1.cc]
__builtin_new [rtlib.o]
StringList::Create(const char*,char*) [StringList.cc:63]
Retriever::IsValidURL(char*) [StringList.h:43]
Retriever::got_href(URL&,const char*,int) [Retriever.cc:1204]
HTML::do_tag(Retriever&,String&) [HTML.cc:805]
HTML::parse(Retriever&,URL&) [HTML.cc:315]
Retriever::RetrievedDocument(Document&,char*,DocumentRef*)
[Retriever.cc:649]
Retriever::parse_url(URLRef&) [Retriever.cc:511]
Retriever::Start() [Retriever.cc:336]
main [htdig.cc:280]
_start [crt1.o]
Block of 16 bytes (119 times); last block at 0x13b25c8
MLK: 1666 bytes leaked in 357 blocks
This memory was allocated from:
malloc [rtlib.o]
strdup [libc.so.1]
Dictionary::Add(const String&,Object*) [Dictionary.cc:216]
e = new DictionaryEntry();
e->hash = hash;
=> e->key = strdup(name);
e->value = obj;
e->next = table[index];
table[index] = e;
Retriever::IsValidURL(char*) [Retriever.cc:715]
Retriever::got_href(URL&,const char*,int) [Retriever.cc:1204]
HTML::do_tag(Retriever&,String&) [HTML.cc:805]
HTML::parse(Retriever&,URL&) [HTML.cc:315]
Retriever::RetrievedDocument(Document&,char*,DocumentRef*)
[Retriever.cc:649]
Retriever::parse_url(URLRef&) [Retriever.cc:511]
Retriever::Start() [Retriever.cc:336]
main [htdig.cc:280]
_start [crt1.o]
Block of 6 bytes (119 times); last block at 0x13b1c50
Block of 5 bytes (119 times); last block at 0x13b19e0
Block of 3 bytes (119 times); last block at 0x13b2b98
MLK: 1340 bytes leaked in 67 blocks
This memory was allocated from:
malloc [rtlib.o]
__bUiLtIn_nEw [new1.cc]
__builtin_new [rtlib.o]
Configuration::Add(const String&,const String&) [Configuration.cc:167]
//
void Configuration::Add(const String& name, const String& value)
{
=> ParsedString *ps = new ParsedString(value);
if (mystrcasecmp(name, "locale") == 0)
{
String str(setlocale(LC_ALL, value));
Configuration::Defaults(const ConfigDefaults*) [Configuration.cc:360]
main [htdig.cc:120]
_start [crt1.o]
Block of 20 bytes (67 times); last block at 0x2b2948
MLK: 1200 bytes leaked in 75 blocks
This memory was allocated from:
malloc [rtlib.o]
__bUiLtIn_nEw [new1.cc]
__builtin_new [rtlib.o]
Dictionary::Add(const String&,Object*) [Dictionary.cc:214]
Configuration::Add(const String&,const String&) [Configuration.cc:180]
Configuration::Defaults(const ConfigDefaults*) [Configuration.cc:360]
main [htdig.cc:120]
_start [crt1.o]
Block of 16 bytes (75 times); last block at 0x2b2a98
MLK: 1190 bytes leaked in 119 blocks
This memory was allocated from:
malloc [rtlib.o]
__bUiLtIn_nEw [new1.cc]
__builtin_new [rtlib.o]
__bUiLtIn_vEc_nEw [new2.cc]
__builtin_vec_new [rtlib.o]
String::allocate_fix_space(int) [String.cc:597]
Allocated = len;
if (Allocated < MinimumAllocationSize)
Allocated = MinimumAllocationSize;
=> Data = new char[Allocated];
}
void String::reallocate_space(int len)
String::copy(const char*,int,int) [String.cc:623]
String::String(const String&) [String.cc:70]
StringList::Create(const char*,char*) [StringList.cc:50]
Retriever::IsValidURL(char*) [StringList.h:43]
Retriever::got_href(URL&,const char*,int) [Retriever.cc:1204]
HTML::do_tag(Retriever&,String&) [HTML.cc:805]
HTML::parse(Retriever&,URL&) [HTML.cc:315]
Retriever::RetrievedDocument(Document&,char*,DocumentRef*)
[Retriever.cc:649]
Retriever::parse_url(URLRef&) [Retriever.cc:511]
Retriever::Start() [Retriever.cc:336]
main [htdig.cc:280]
_start [crt1.o]
Block of 10 bytes (119 times); last block at 0x13b6af0
MLK: 1188 bytes leaked in 67 blocks
This memory was allocated from:
malloc [rtlib.o]
__bUiLtIn_nEw [new1.cc]
__builtin_new [rtlib.o]
__bUiLtIn_vEc_nEw [new2.cc]
__builtin_vec_new [rtlib.o]
String::allocate_space(int) [String.cc:581]
while (Allocated < len)
Allocated <<= 1;
=> Data = new char[Allocated];
}
void String::allocate_fix_space(int len)
String::operator =(const String&) [String.cc:98]
ParsedString::ParsedString(const String&) [ParsedString.cc:36]
Configuration::Add(const String&,const String&) [Configuration.cc:167]
Configuration::Defaults(const ConfigDefaults*) [Configuration.cc:360]
main [htdig.cc:120]
_start [crt1.o]
Block of 128 bytes (2 times); last block at 0x2a8c28
Block of 64 bytes at 0x2add08
Block of 32 bytes (18 times); last block at 0x2b29e8
Block of 16 bytes (4 times); last block at 0x2af928
Block of 8 bytes (15 times); last block at 0x2ad420
Block of 4 bytes (27 times); last block at 0x2ad118
MLK: 1181 bytes leaked in 75 blocks
MLK: 1089 bytes leaked in 23 blocks
MLK: 595 bytes leaked in 119 blocks
MLK: 368 bytes leaked in 23 blocks
MLK: 160 bytes leaked in 8 blocks
MLK: 156 bytes leaked in 8 blocks
MLK: 48 bytes leaked in 3 blocks
MLK: 40 bytes leaked in 2 blocks
MLK: 36 bytes leaked in 6 blocks
MLK: 32 bytes leaked in 2 blocks
MLK: 32 bytes leaked in 2 blocks
MLK: 32 bytes leaked in 2 blocks
MLK: 16 bytes leaked at 0x2bbae0
MLK: 16 bytes leaked at 0x2bc608
MLK: 16 bytes leaked at 0x362e18
MLK: 16 bytes leaked in 2 blocks
MLK: 16 bytes leaked at 0x1223320
MLK: 16 bytes leaked at 0x12233c0
MLK: 16 bytes leaked at 0x1247a38
MLK: 15 bytes leaked at 0x2367130
MLK: 14 bytes leaked in 3 blocks
MLK: 10 bytes leaked in 2 blocks
MLK: 10 bytes leaked at 0x1204cc0
MLK: 9 bytes leaked at 0x2a2698
MLK: 8 bytes leaked in 2 blocks
MLK: 8 bytes leaked in 2 blocks
MLK: 5 bytes leaked at 0x1223460
MLK: 4 bytes leaked at 0x435018
MLK: 4 bytes leaked at 0x23679c0
MLK: 2 bytes leaked at 0x2a4d78
Purify Heap Analysis (combining suppressed and unsuppressed blocks)
Cheers ? :(
Marcel.
----------------------
Marcel Bosc
ECILA
100 av. du Gal Leclerc
93500 Pantin - France
Tel: 33 1 56 96 10 85
------------------------------------
To unsubscribe from the htdig3-dev mailing list, send a message to
[EMAIL PROTECTED]
You will receive a message to confirm this.