mirror of
https://github.com/moparisthebest/pacman
synced 2024-08-13 17:03:46 -04:00
removed a restriction: the data parameter of XXX_prepare functions can be NULL
This commit is contained in:
parent
fce68beaaf
commit
e405204915
@ -196,9 +196,10 @@ int add_prepare(pmtrans_t *trans, pmdb_t *db, PMList **data)
|
|||||||
|
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
ASSERT(data != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
|
|
||||||
*data = NULL;
|
if(data) {
|
||||||
|
*data = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Check dependencies
|
/* Check dependencies
|
||||||
*/
|
*/
|
||||||
@ -220,13 +221,15 @@ int add_prepare(pmtrans_t *trans, pmdb_t *db, PMList **data)
|
|||||||
if(!errorout) {
|
if(!errorout) {
|
||||||
errorout = 1;
|
errorout = 1;
|
||||||
}
|
}
|
||||||
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
if(data) {
|
||||||
FREELIST(lp);
|
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
||||||
FREELIST(*data);
|
FREELIST(lp);
|
||||||
RET_ERR(PM_ERR_MEMORY, -1);
|
FREELIST(*data);
|
||||||
|
RET_ERR(PM_ERR_MEMORY, -1);
|
||||||
|
}
|
||||||
|
*miss = *(pmdepmissing_t*)i->data;
|
||||||
|
*data = pm_list_add(*data, miss);
|
||||||
}
|
}
|
||||||
*miss = *(pmdepmissing_t*)i->data;
|
|
||||||
*data = pm_list_add(*data, miss);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(errorout) {
|
if(errorout) {
|
||||||
@ -242,13 +245,15 @@ int add_prepare(pmtrans_t *trans, pmdb_t *db, PMList **data)
|
|||||||
if(!errorout) {
|
if(!errorout) {
|
||||||
errorout = 1;
|
errorout = 1;
|
||||||
}
|
}
|
||||||
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
if(data) {
|
||||||
FREELIST(lp);
|
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
||||||
FREELIST(*data);
|
FREELIST(lp);
|
||||||
RET_ERR(PM_ERR_MEMORY, -1);
|
FREELIST(*data);
|
||||||
|
RET_ERR(PM_ERR_MEMORY, -1);
|
||||||
|
}
|
||||||
|
*miss = *(pmdepmissing_t*)i->data;
|
||||||
|
*data = pm_list_add(*data, miss);
|
||||||
}
|
}
|
||||||
*miss = *(pmdepmissing_t*)i->data;
|
|
||||||
*data = pm_list_add(*data, miss);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FREELIST(lp);
|
FREELIST(lp);
|
||||||
@ -277,7 +282,9 @@ int add_prepare(pmtrans_t *trans, pmdb_t *db, PMList **data)
|
|||||||
_alpm_log(PM_LOG_FLOW1, "looking for file conflicts");
|
_alpm_log(PM_LOG_FLOW1, "looking for file conflicts");
|
||||||
lp = db_find_conflicts(db, trans->packages, handle->root, &skiplist);
|
lp = db_find_conflicts(db, trans->packages, handle->root, &skiplist);
|
||||||
if(lp != NULL) {
|
if(lp != NULL) {
|
||||||
*data = lp;
|
if(data) {
|
||||||
|
*data = lp;
|
||||||
|
}
|
||||||
FREELIST(skiplist);
|
FREELIST(skiplist);
|
||||||
RET_ERR(PM_ERR_FILE_CONFLICTS, -1);
|
RET_ERR(PM_ERR_FILE_CONFLICTS, -1);
|
||||||
}
|
}
|
||||||
|
@ -611,7 +611,6 @@ int alpm_trans_prepare(PMList **data)
|
|||||||
|
|
||||||
/* Sanity checks */
|
/* Sanity checks */
|
||||||
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
ASSERT(data != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
|
|
||||||
trans = handle->trans;
|
trans = handle->trans;
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
@ -78,7 +78,6 @@ int remove_prepare(pmtrans_t *trans, pmdb_t *db, PMList **data)
|
|||||||
|
|
||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(data != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
|
|
||||||
if(!(trans->flags & (PM_TRANS_FLAG_NODEPS)) && (trans->type != PM_TRANS_TYPE_UPGRADE)) {
|
if(!(trans->flags & (PM_TRANS_FLAG_NODEPS)) && (trans->type != PM_TRANS_TYPE_UPGRADE)) {
|
||||||
EVENT(trans, PM_TRANS_EVT_CHECKDEPS_START, NULL, NULL);
|
EVENT(trans, PM_TRANS_EVT_CHECKDEPS_START, NULL, NULL);
|
||||||
@ -100,7 +99,9 @@ int remove_prepare(pmtrans_t *trans, pmdb_t *db, PMList **data)
|
|||||||
lp = checkdeps(db, trans->type, trans->packages);
|
lp = checkdeps(db, trans->type, trans->packages);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
*data = lp;
|
if(data) {
|
||||||
|
*data = lp;
|
||||||
|
}
|
||||||
RET_ERR(PM_ERR_UNSATISFIED_DEPS, -1);
|
RET_ERR(PM_ERR_UNSATISFIED_DEPS, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -346,9 +346,10 @@ int sync_prepare(pmtrans_t *trans, pmdb_t *db_local, PMList *dbs_sync, PMList **
|
|||||||
|
|
||||||
ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(data != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
|
||||||
|
|
||||||
*data = NULL;
|
if(data) {
|
||||||
|
*data = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->packages; i; i = i->next) {
|
||||||
@ -395,13 +396,15 @@ int sync_prepare(pmtrans_t *trans, pmdb_t *db_local, PMList *dbs_sync, PMList **
|
|||||||
if(!errorout) {
|
if(!errorout) {
|
||||||
errorout = 1;
|
errorout = 1;
|
||||||
}
|
}
|
||||||
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
if(data) {
|
||||||
FREELIST(*data);
|
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
||||||
pm_errno = PM_ERR_MEMORY;
|
FREELIST(*data);
|
||||||
goto error;
|
pm_errno = PM_ERR_MEMORY;
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
*miss = *(pmdepmissing_t *)i->data;
|
||||||
|
*data = pm_list_add(*data, miss);
|
||||||
}
|
}
|
||||||
*miss = *(pmdepmissing_t *)i->data;
|
|
||||||
*data = pm_list_add(*data, miss);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(errorout) {
|
if(errorout) {
|
||||||
@ -527,25 +530,29 @@ int sync_prepare(pmtrans_t *trans, pmdb_t *db_local, PMList *dbs_sync, PMList **
|
|||||||
/* abort */
|
/* abort */
|
||||||
_alpm_log(PM_LOG_ERROR, "package conflicts detected");
|
_alpm_log(PM_LOG_ERROR, "package conflicts detected");
|
||||||
errorout = 1;
|
errorout = 1;
|
||||||
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
if(data) {
|
||||||
FREELIST(*data);
|
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
||||||
pm_errno = PM_ERR_MEMORY;
|
FREELIST(*data);
|
||||||
goto error;
|
pm_errno = PM_ERR_MEMORY;
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
*miss = *(pmdepmissing_t *)i->data;
|
||||||
|
*data = pm_list_add(*data, miss);
|
||||||
}
|
}
|
||||||
*miss = *(pmdepmissing_t *)i->data;
|
|
||||||
*data = pm_list_add(*data, miss);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_ERROR, "%s conflicts with %s", miss->target, miss->depend.name);
|
_alpm_log(PM_LOG_ERROR, "%s conflicts with %s", miss->target, miss->depend.name);
|
||||||
errorout = 1;
|
errorout = 1;
|
||||||
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
if(data) {
|
||||||
FREELIST(*data);
|
if((miss = (pmdepmissing_t *)malloc(sizeof(pmdepmissing_t))) == NULL) {
|
||||||
pm_errno = PM_ERR_MEMORY;
|
FREELIST(*data);
|
||||||
goto error;
|
pm_errno = PM_ERR_MEMORY;
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
*miss = *(pmdepmissing_t *)i->data;
|
||||||
|
*data = pm_list_add(*data, miss);
|
||||||
}
|
}
|
||||||
*miss = *(pmdepmissing_t *)i->data;
|
|
||||||
*data = pm_list_add(*data, miss);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -588,7 +595,9 @@ int sync_prepare(pmtrans_t *trans, pmdb_t *db_local, PMList *dbs_sync, PMList **
|
|||||||
_alpm_log(PM_LOG_DEBUG, "checking dependencies of packages designated for removal");
|
_alpm_log(PM_LOG_DEBUG, "checking dependencies of packages designated for removal");
|
||||||
deps = checkdeps(db_local, PM_TRANS_TYPE_REMOVE, list);
|
deps = checkdeps(db_local, PM_TRANS_TYPE_REMOVE, list);
|
||||||
if(deps) {
|
if(deps) {
|
||||||
*data = deps;
|
if(data) {
|
||||||
|
*data = deps;
|
||||||
|
}
|
||||||
pm_errno = PM_ERR_UNSATISFIED_DEPS;
|
pm_errno = PM_ERR_UNSATISFIED_DEPS;
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user