Skip to content

Commit 1479305

Browse files
committed
Simplify RegisterBuiltinBuilder
1 parent c7a84b9 commit 1479305

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/libstore/include/nix/store/builtins.hh

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,15 @@ using BuiltinBuilder = std::function<void(const BuiltinBuilderContext &)>;
1919
struct RegisterBuiltinBuilder
2020
{
2121
typedef std::map<std::string, BuiltinBuilder> BuiltinBuilders;
22-
static BuiltinBuilders * builtinBuilders;
22+
23+
static BuiltinBuilders & builtinBuilders() {
24+
static BuiltinBuilders builders;
25+
return builders;
26+
}
2327

2428
RegisterBuiltinBuilder(const std::string & name, BuiltinBuilder && fun)
2529
{
26-
if (!builtinBuilders) builtinBuilders = new BuiltinBuilders;
27-
builtinBuilders->insert_or_assign(name, std::move(fun));
30+
builtinBuilders().insert_or_assign(name, std::move(fun));
2831
}
2932
};
3033

src/libstore/unix/build/derivation-builder.cc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1835,9 +1835,6 @@ void setupSeccomp()
18351835
}
18361836

18371837

1838-
RegisterBuiltinBuilder::BuiltinBuilders * RegisterBuiltinBuilder::builtinBuilders = nullptr;
1839-
1840-
18411838
void DerivationBuilderImpl::runChild()
18421839
{
18431840
/* Warning: in the child we should absolutely not make any SQLite
@@ -2298,7 +2295,7 @@ void DerivationBuilderImpl::runChild()
22982295

22992296
std::string builtinName = drv.builder.substr(8);
23002297
assert(RegisterBuiltinBuilder::builtinBuilders);
2301-
if (auto builtin = get(*RegisterBuiltinBuilder::builtinBuilders, builtinName))
2298+
if (auto builtin = get(RegisterBuiltinBuilder::builtinBuilders(), builtinName))
23022299
(*builtin)(ctx);
23032300
else
23042301
throw Error("unsupported builtin builder '%1%'", builtinName);

0 commit comments

Comments
 (0)