Subject: Re: Commit: Re: patch: one-liner for 1134
From: Patrick Lam (plam@plam.lcs.mit.edu)
Date: Fri Mar 30 2001 - 14:14:36 CST
On 30 Mar 2001, Joaquin Cuenca Abela wrote:
> >From the patch that I'm seeing, and if m_pszTabStops is allocated as
>
> m_pszTabStops = new char[1];
>
> then you can only leak 1 byte of memory. And to prevent the leaking you
> should do:
Well, I'm pretty sure that new will actually allocate more than one byte,
because tracking 1-byte allocations just sucks. Furthermore, you would
also leak the overhead of the data structures which track memory
allocation.
But it's ok, since we free it in the destructor anyway.
> remember, when you allocate using new stuff[number]; you should
> deallocate using delete[] stuff. Or even better (for those that thinks
> that the macros actually make a difference) use DELETEPV(stuff);
The destructor uses delete thing;, not delete[] thing. Is that incorrect,
then? (I usually program in languages with garbage collection...)
> PS: btw, if m_pszTabStops is not a null terminated string (I don't see
> how it can be a null terminated string if it only has a byte), it should
> not use the prefix sz.
It's always a null terminated string, but gets reallocated when
changed; here, it's changed to a string of length 0 (so NULL is
incorrect).
pat
This archive was generated by hypermail 2b25 : Fri Mar 30 2001 - 14:21:14 CST