File tree Expand file tree Collapse file tree 2 files changed +7
-7
lines changed
Expand file tree Collapse file tree 2 files changed +7
-7
lines changed Original file line number Diff line number Diff line change @@ -19,12 +19,15 @@ using BuiltinBuilder = std::function<void(const BuiltinBuilderContext &)>;
1919struct 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
Original file line number Diff line number Diff line change @@ -1835,9 +1835,6 @@ void setupSeccomp()
18351835}
18361836
18371837
1838- RegisterBuiltinBuilder::BuiltinBuilders * RegisterBuiltinBuilder::builtinBuilders = nullptr ;
1839-
1840-
18411838void 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);
You can’t perform that action at this time.
0 commit comments