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