mirror of
https://github.com/NixOS/nix
synced 2025-06-27 21:01:16 +02:00
Simplify RegisterBuiltinBuilder
This commit is contained in:
parent
c7a84b9160
commit
1479305001
2 changed files with 7 additions and 7 deletions
|
@ -19,12 +19,15 @@ using BuiltinBuilder = std::function<void(const BuiltinBuilderContext &)>;
|
|||
struct RegisterBuiltinBuilder
|
||||
{
|
||||
typedef std::map<std::string, BuiltinBuilder> BuiltinBuilders;
|
||||
static BuiltinBuilders * builtinBuilders;
|
||||
|
||||
static BuiltinBuilders & builtinBuilders() {
|
||||
static BuiltinBuilders builders;
|
||||
return builders;
|
||||
}
|
||||
|
||||
RegisterBuiltinBuilder(const std::string & name, BuiltinBuilder && fun)
|
||||
{
|
||||
if (!builtinBuilders) builtinBuilders = new BuiltinBuilders;
|
||||
builtinBuilders->insert_or_assign(name, std::move(fun));
|
||||
builtinBuilders().insert_or_assign(name, std::move(fun));
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -1835,9 +1835,6 @@ void setupSeccomp()
|
|||
}
|
||||
|
||||
|
||||
RegisterBuiltinBuilder::BuiltinBuilders * RegisterBuiltinBuilder::builtinBuilders = nullptr;
|
||||
|
||||
|
||||
void DerivationBuilderImpl::runChild()
|
||||
{
|
||||
/* Warning: in the child we should absolutely not make any SQLite
|
||||
|
@ -2298,7 +2295,7 @@ void DerivationBuilderImpl::runChild()
|
|||
|
||||
std::string builtinName = drv.builder.substr(8);
|
||||
assert(RegisterBuiltinBuilder::builtinBuilders);
|
||||
if (auto builtin = get(*RegisterBuiltinBuilder::builtinBuilders, builtinName))
|
||||
if (auto builtin = get(RegisterBuiltinBuilder::builtinBuilders(), builtinName))
|
||||
(*builtin)(ctx);
|
||||
else
|
||||
throw Error("unsupported builtin builder '%1%'", builtinName);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue