Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=bde62cf3d4ae00b161e4e863ac6cc59fd848aa8e
commit bde62cf3d4ae00b161e4e863ac6cc59fd848aa8e Author: Michel Hermier <herm...@frugalware.org> Date: Sat May 4 11:27:13 2013 +0200 libpacman: Make _pacman_sortbydeps take a trans instead of a list and return void. diff --git a/lib/libpacman/deps.c b/lib/libpacman/deps.c index b50ae4b..6c34298 100644 --- a/lib/libpacman/deps.c +++ b/lib/libpacman/deps.c @@ -250,9 +250,8 @@ int _pacman_depmiss_isin(pmdepmissing_t *needle, pmlist_t *haystack) * affects the dependency order sortbydeps() will use. * * This function returns the new pmlist_t* target list. - * */ -pmlist_t *_pacman_sortbydeps(pmlist_t *targets, int mode) +void _pacman_sortbydeps(pmtrans_t *trans, int mode) { pmlist_t *newtargs = NULL; pmlist_t *i, *j, *k; @@ -261,14 +260,14 @@ pmlist_t *_pacman_sortbydeps(pmlist_t *targets, int mode) pmgraph_t *vertex; int found; - if(targets == NULL) { + if (trans->_packages == NULL) { return(NULL); } _pacman_log(PM_LOG_DEBUG, _("started sorting dependencies")); /* We create the vertices */ - for(i = targets; i; i = i->next) { + for (i = trans->_packages; i; i = i->next) { pmgraph_t *v = _pacman_graph_new(); v->data = (void *)i->data; vertices = _pacman_list_add(vertices, v); @@ -339,7 +338,7 @@ pmlist_t *_pacman_sortbydeps(pmlist_t *targets, int mode) _FREELIST(vertices, _pacman_graph_free); - return(newtargs); + trans->_packages = newtargs; } /* Returns a pmlist_t* of missing_t pointers. diff --git a/lib/libpacman/deps.h b/lib/libpacman/deps.h index dc6741c..be09d12 100644 --- a/lib/libpacman/deps.h +++ b/lib/libpacman/deps.h @@ -49,7 +49,7 @@ typedef struct __pmgraph_t { pmdepmissing_t *_pacman_depmiss_new(const char *target, unsigned char type, unsigned char depmod, const char *depname, const char *depversion); int _pacman_depmiss_isin(pmdepmissing_t *needle, pmlist_t *haystack); -pmlist_t *_pacman_sortbydeps(pmlist_t *targets, int mode); +void _pacman_sortbydeps(pmtrans_t *trans, int mode); pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packages); int _pacman_splitdep(const char *depstr, pmdepend_t *depend); void _pacman_removedeps(pmtrans_t *trans); diff --git a/lib/libpacman/trans.c b/lib/libpacman/trans.c index d7095f3..c6de66b 100644 --- a/lib/libpacman/trans.c +++ b/lib/libpacman/trans.c @@ -630,25 +630,7 @@ int _pacman_sync_prepare (pmtrans_t *trans, pmlist_t **data) } } - /* re-order w.r.t. dependencies */ - k = l = NULL; - for(i=trans->packages; i; i=i->next) { - pmsyncpkg_t *s = (pmsyncpkg_t*)i->data; - k = _pacman_list_add(k, s->pkg_new); - } - m = _pacman_sortbydeps(k, PM_TRANS_TYPE_ADD); - for(i=m; i; i=i->next) { - for(j=trans->packages; j; j=j->next) { - pmsyncpkg_t *s = (pmsyncpkg_t*)j->data; - if(s->pkg_new==i->data) { - l = _pacman_list_add(l, s); - } - } - } - FREELISTPTR(k); - FREELISTPTR(m); - FREELISTPTR(trans->packages); - trans->packages = l; + _pacman_sortbydeps(trans, PM_TRANS_TYPE_ADD); EVENT(trans, PM_TRANS_EVT_RESOLVEDEPS_DONE, NULL, NULL); @@ -1008,9 +990,7 @@ int _pacman_trans_prepare(pmtrans_t *trans, pmlist_t **data) RET_ERR(PM_ERR_CONFLICTING_DEPS, -1); } - /* re-order w.r.t. dependencies */ - _pacman_log(PM_LOG_FLOW1, _("sorting by dependencies")); - trans->_packages = _pacman_sortbydeps(trans->_packages, PM_TRANS_TYPE_ADD); + _pacman_sortbydeps(trans, PM_TRANS_TYPE_ADD); EVENT(trans, PM_TRANS_EVT_CHECKDEPS_DONE, NULL, NULL); } @@ -1096,8 +1076,7 @@ int _pacman_trans_prepare(pmtrans_t *trans, pmlist_t **data) } /* re-order w.r.t. dependencies */ - _pacman_log(PM_LOG_FLOW1, _("sorting by dependencies")); - trans->_packages = _pacman_sortbydeps(trans->_packages, PM_TRANS_TYPE_REMOVE); + _pacman_sortbydeps(trans, PM_TRANS_TYPE_REMOVE); EVENT(trans, PM_TRANS_EVT_CHECKDEPS_DONE, NULL, NULL); } _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git