does zend_list_delete free the resource making lines 2 & 3 redundent?
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)
Hello Jesse,
Thursday, March 24, 2005, 3:44:18 PM, you wrote:
does zend_list_delete free the resource making lines 2 & 3 redundent?
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.
--
Best regards,
Marcus mailto:mail@marcus-boerger.de
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