diff --git a/headers/os/package/solver/SolverRepository.h b/headers/os/package/solver/SolverRepository.h index afca10b445..24dc961784 100644 --- a/headers/os/package/solver/SolverRepository.h +++ b/headers/os/package/solver/SolverRepository.h @@ -58,7 +58,8 @@ public: int32 CountPackages() const; BSolverPackage* PackageAt(int32 index) const; - status_t AddPackage(const BPackageInfo& info); + status_t AddPackage(const BPackageInfo& info, + BSolverPackage** _package = NULL); status_t AddPackages( BPackageInstallationLocation location); diff --git a/src/kits/package/solver/SolverRepository.cpp b/src/kits/package/solver/SolverRepository.cpp index f10360bea8..b78cb6d415 100644 --- a/src/kits/package/solver/SolverRepository.cpp +++ b/src/kits/package/solver/SolverRepository.cpp @@ -238,7 +238,8 @@ BSolverRepository::PackageAt(int32 index) const status_t -BSolverRepository::AddPackage(const BPackageInfo& info) +BSolverRepository::AddPackage(const BPackageInfo& info, + BSolverPackage** _package = NULL) { BSolverPackage* package = new(std::nothrow) BSolverPackage(this, info); if (package == NULL || !fPackages.AddItem(package)) { @@ -246,6 +247,9 @@ BSolverRepository::AddPackage(const BPackageInfo& info) return B_NO_MEMORY; } + if (_package != NULL) + *_package = package; + return B_OK; }