> > 1 ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name,
le_ftpbuf);
> > 2 zend_list_delete(Z_LVAL_P(z_ftp))
> > 3 efree(ftp)
>
> Line three is wrong it should be
> zval_ptr_dtor(&z_ftp)
> and no, it doesn't make the efree()/zval_ptr_dtor() redundant.
> It only frees the members but doesn't care for the zval.
>
For that matter, it should *only* be zval_ptr_dtor(&z_ftp) since in the
process of dtoring the zval the list entry is delref'd (what list_delete
actually does) anyway.

Of course, my question for you would be.  Is that *literally* how your code
looks?  I.e. You fetch a resource immediately before destroying it?  Or are
you just condensing for brevity?

-Sara

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

Reply via email to