From: Michael Tremer Date: Tue, 17 Oct 2023 16:41:25 +0000 (+0000) Subject: archive: Add a reference to the context X-Git-Tag: 0.9.30~1456 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=008bfbf8bb2562bc682f127e857ee5e3c6cfa844;p=pakfire.git archive: Add a reference to the context Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index 00a90a961..00ccb8d1f 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -35,6 +35,7 @@ #include #include +#include #include #include #include @@ -57,6 +58,7 @@ #define MAX_FOLLOW_SYMLINKS 10 struct pakfire_archive { + struct pakfire_ctx* ctx; struct pakfire* pakfire; int nrefs; @@ -197,7 +199,10 @@ static void pakfire_archive_free(struct pakfire_archive* archive) { pakfire_package_unref(archive->package); if (archive->metadata) json_object_put(archive->metadata); - pakfire_unref(archive->pakfire); + if (archive->pakfire) + pakfire_unref(archive->pakfire); + if (archive->ctx) + pakfire_ctx_unref(archive->ctx); free(archive); } @@ -206,6 +211,9 @@ static int pakfire_archive_create(struct pakfire_archive** archive, struct pakfi if (!a) return ENOMEM; + // Store a reference to the context + a->ctx = pakfire_ctx(pakfire); + a->pakfire = pakfire_ref(pakfire); a->nrefs = 1;