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. 

Reply via email to