Hi Henrik,
At 23.18 08/01/2005, Henrik Nordstrom wrote:
On Sat, 8 Jan 2005, Serassio Guido wrote:
From my understanding of C++ the new operator is not supposed to guarantee the memory is cleared. This is the job of the constructor and related member initializers, where the default constructor memsets the object to 0.
So, in the Robert's patch something should be wrong: he changed a xcalloc() call with a new operator.
No, I stand slightly corrected, there is no automatic default constructor in C++. Just like in C if you do not explicity initialize allocated memory you get garbage.
This was always clear to me. The problem, when using C++, can be to see where is the problem, particularly when the C++ knowledge is still little like mine ... :-(
My first time impact with C++ was the Robert's refactoring work in Squid: non exactly a C++ implementation easy to understand for a newbe ... :-)
There is nothing wrong with the patch. What is wrong is the RemovalPolicySettings class which does not have a constructor and leaves the object uninitialized.
Now is clear to me how fix similar problems.
This then crashes when parsing as the parsing routines tries to free the old values (garbage).
The following should fix it:
Yes, it works fine.
Regards
Guido
- ======================================================== Guido Serassio Acme Consulting S.r.l. - Microsoft Certified Partner Via Gorizia, 69 10136 - Torino - ITALY Tel. : +39.011.3249426 Fax. : +39.011.3293665 Email: [EMAIL PROTECTED] WWW: http://www.acmeconsulting.it/
