--- Joseph Tate <[EMAIL PROTECTED]> 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/

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to