summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/sync.h2
-rw-r--r--lib/libalpm/trans.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/libalpm/sync.h b/lib/libalpm/sync.h
index 615e17d2..59c42064 100644
--- a/lib/libalpm/sync.h
+++ b/lib/libalpm/sync.h
@@ -31,6 +31,8 @@ typedef struct __pmsyncpkg_t {
void *data;
} pmsyncpkg_t;
+#define FREESYNC(p) do { if(p) { sync_free(p); p = NULL; } } while(0)
+
pmsyncpkg_t *sync_new(int type, pmpkg_t *spkg, void *data);
void sync_free(pmsyncpkg_t *sync);
diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c
index 7a91cb9b..e4ab72bf 100644
--- a/lib/libalpm/trans.c
+++ b/lib/libalpm/trans.c
@@ -66,8 +66,7 @@ void trans_free(pmtrans_t *trans)
if(trans->type == PM_TRANS_TYPE_SYNC) {
PMList *i;
for(i = trans->packages; i; i = i->next) {
- sync_free(i->data);
- i->data = NULL;
+ FREESYNC(i->data);
}
FREELIST(trans->packages);
FREELIST(trans->skiplist);