Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=d7591ac978adc4d983b75e8a8bac59c0930b523e
commit d7591ac978adc4d983b75e8a8bac59c0930b523e Author: Michel Hermier <[email protected]> Date: Wed Nov 13 08:17:13 2013 +0100 libpacman: Move pmtrans_t fini operations from _pacman_trans_free to _pacman_trans_fini. diff --git a/lib/libpacman/trans.c b/lib/libpacman/trans.c index 527a2a4..015d91f 100644 --- a/lib/libpacman/trans.c +++ b/lib/libpacman/trans.c @@ -80,19 +80,6 @@ void _pacman_trans_free(pmtrans_t *trans) return; } - FREELIST(trans->targets); - if(trans->type == PM_TRANS_TYPE_SYNC) { - pmlist_t *i; - for(i = trans->packages; i; i = i->next) { - FREESYNC(i->data); - } - FREELIST(trans->packages); - } else { - FREELISTPKGS(trans->packages); - } - FREELIST(trans->skiplist); - FREELIST(trans->triggers); - _pacman_trans_fini(trans); free(trans); } @@ -134,6 +121,24 @@ int _pacman_trans_init(pmtrans_t *trans, pmtranstype_t type, unsigned int flags, void _pacman_trans_fini(pmtrans_t *trans) { + /* Sanity checks */ + ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); + + FREELIST(trans->targets); + if(trans->type == PM_TRANS_TYPE_SYNC) { + pmlist_t *i; + for(i = trans->packages; i; i = i->next) { + FREESYNC(i->data); + } + FREELIST(trans->packages); + } else { + FREELISTPKGS(trans->packages); + } + FREELIST(trans->skiplist); + FREELIST(trans->triggers); + + memset(trans, 0, sizeof(*trans)); + trans->state = STATE_IDLE; } int _pacman_trans_sysupgrade(pmtrans_t *trans) _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
