Skip to content

Commit a3c5531

Browse files
committed
Only create solver::libsolv::Database if needed
Signed-off-by: Julien Jerphanion <[email protected]>
1 parent 2edd01d commit a3c5531

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

libmamba/src/api/install.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -491,17 +491,19 @@ namespace mamba
491491
LOG_WARNING << "No 'channels' specified";
492492
}
493493

494-
solver::libsolv::Database initial_db(
495-
channel_context.params(),
496-
{ ctx.experimental_matchspec_parsing ? solver::libsolv::MatchSpecParser::Mamba
497-
: solver::libsolv::MatchSpecParser::Libsolv }
498-
);
499494
solver::DatabaseVariant db_variant = ctx.experimental_resolvo_solver
500495
? solver::DatabaseVariant(
501496
std::in_place_type<solver::resolvo::Database>,
502497
channel_context.params()
503498
)
504-
: solver::DatabaseVariant(std::move(initial_db));
499+
: solver::DatabaseVariant(
500+
std::in_place_type<solver::libsolv::Database>,
501+
channel_context.params(),
502+
solver::libsolv::Database::Settings{
503+
ctx.experimental_matchspec_parsing
504+
? solver::libsolv::MatchSpecParser::Mamba
505+
: solver::libsolv::MatchSpecParser::Libsolv }
506+
);
505507

506508
if (!ctx.experimental_resolvo_solver)
507509
{

libmamba/src/api/remove.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,19 +136,20 @@ namespace mamba
136136
}
137137
PrefixData& prefix_data = exp_prefix_data.value();
138138

139-
solver::libsolv::Database database{
140-
channel_context.params(),
141-
{
142-
ctx.experimental_matchspec_parsing ? solver::libsolv::MatchSpecParser::Mamba
143-
: solver::libsolv::MatchSpecParser::Libsolv,
144-
},
145-
};
146139
solver::DatabaseVariant db_variant = ctx.experimental_resolvo_solver
147140
? solver::DatabaseVariant(
148141
std::in_place_type<solver::resolvo::Database>,
149142
channel_context.params()
150143
)
151-
: solver::DatabaseVariant(std::move(database));
144+
: solver::DatabaseVariant(
145+
std::in_place_type<solver::libsolv::Database>,
146+
channel_context.params(),
147+
solver::libsolv::Database::Settings{
148+
ctx.experimental_matchspec_parsing
149+
? solver::libsolv::MatchSpecParser::Mamba
150+
: solver::libsolv::MatchSpecParser::Libsolv,
151+
}
152+
);
152153

153154
if (!ctx.experimental_resolvo_solver)
154155
{

0 commit comments

Comments
 (0)