--- 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