summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/package.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libalpm/package.c')
-rw-r--r--lib/libalpm/package.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index 31f07325..21984b37 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -126,6 +126,8 @@ static int _pkg_changelog_close(const alpm_pkg_t UNUSED *pkg,
return EOF;
}
+static int _pkg_force_load(alpm_pkg_t UNUSED *pkg) { return 0; }
+
/** The standard package operations struct. Get fields directly from the
* struct itself with no abstraction layer or any type of lazy loading.
*/
@@ -157,6 +159,8 @@ struct pkg_operations default_pkg_ops = {
.changelog_open = _pkg_changelog_open,
.changelog_read = _pkg_changelog_read,
.changelog_close = _pkg_changelog_close,
+
+ .force_load = _pkg_force_load,
};
/* Public functions for getting package information. These functions
@@ -437,6 +441,10 @@ alpm_pkg_t *_alpm_pkg_dup(alpm_pkg_t *pkg)
alpm_pkg_t *newpkg;
alpm_list_t *i;
+ if(pkg->ops->force_load(pkg)) {
+ return NULL;
+ }
+
CALLOC(newpkg, 1, sizeof(alpm_pkg_t), goto cleanup);
newpkg->name_hash = pkg->name_hash;