Re: Memory leak and possible cause of bug #15333
| From: | brad lafountain | Date: | Mon, 08 Apr 2002 19:22:50 +0000 |
| Subject: | Re: Memory leak and possible cause of bug #15333 | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-82285@lists.php.net to get a copy of this message | ||
--- Joseph Tate <jtate@mi-corporation.com> wrote:
> in the copy_zend_constant function it reads:
>
> void copy_zend_constant(zend_constant *c)
> {
> c->name = zend_strndup(c->name, c->name_len);
> if (!(c->flags & CONST_PERSISTENT)) {
> zval_copy_ctor(&c->value);
> if (c->flags & CONST_EFREE_PERSISTENT) { /* persist_alloc()'d data */
> persist_alloc(&c->value);
> }
> }
> }
>
> I draw your attention to the first line in the function:
> c->name = zend_strndup(c->name, c->name_len);
>
> First of all, why is this string duplicated only to store it to the same
> location? Secondly, is c->name freed somewhere else? Cause I can't see it
> being freed. Seems like this line can be removed...
>
So c points to the "old" value and you need to copy the name and the value to
the "new" one, name and value. and the way hashes and emalloc works the memory
will be freed automatically.
> Joseph
>
>
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, visit: http://www.php.net/unsub.php
>
__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/