struct _PakfireArchive {
Pakfire pakfire;
- char* path;
+ int nrefs;
+
+ char path[PATH_MAX];
struct stat stat;
// metadata
struct pakfire_scriptlet** scriptlets;
size_t nscriptlets;
- int nrefs;
};
struct _PakfireArchiveSignature {
// Free all checksums
pakfire_archive_free_chksums(archive);
- if (archive->path)
- free(archive->path);
-
// Free signatures
if (archive->signatures) {
PakfireArchiveSignature* signatures = archive->signatures;
}
static int pakfire_archive_try_open(PakfireArchive archive, const char* path) {
- archive->path = strdup(path);
+ if (!path)
+ return EINVAL;
+
+ // Store path
+ pakfire_string_set(archive->path, path);
// Stat the file and store the result
int r = stat(archive->path, &archive->stat);