aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2')
-rw-r--r--libbuild2/build/script/parser.test.cxx2
-rw-r--r--libbuild2/context.hxx14
-rw-r--r--libbuild2/file-cache.hxx7
-rw-r--r--libbuild2/file-cache.ixx8
-rw-r--r--libbuild2/function.test.cxx2
-rw-r--r--libbuild2/test/script/parser.test.cxx2
6 files changed, 28 insertions, 7 deletions
diff --git a/libbuild2/build/script/parser.test.cxx b/libbuild2/build/script/parser.test.cxx
index 4089efa..63d41ff 100644
--- a/libbuild2/build/script/parser.test.cxx
+++ b/libbuild2/build/script/parser.test.cxx
@@ -182,7 +182,7 @@ namespace build2
//
scheduler sched (1);
global_mutexes mutexes (1);
- file_cache fcache;
+ file_cache fcache (true);
context ctx (sched, mutexes, fcache);
try
diff --git a/libbuild2/context.hxx b/libbuild2/context.hxx
index c4d85c9..9df7a88 100644
--- a/libbuild2/context.hxx
+++ b/libbuild2/context.hxx
@@ -94,8 +94,18 @@ namespace build2
explicit
global_mutexes (size_t vc)
- : variable_cache_size (vc),
- variable_cache (new shared_mutex[variable_cache_size]) {}
+ {
+ init (vc);
+ }
+
+ global_mutexes () = default; // Create uninitialized instance.
+
+ void
+ init (size_t vc)
+ {
+ variable_cache_size = vc;
+ variable_cache.reset (new shared_mutex[vc]);
+ }
};
// A build context encapsulates the state of a build. It is possible to have
diff --git a/libbuild2/file-cache.hxx b/libbuild2/file-cache.hxx
index d6904ed..d210685 100644
--- a/libbuild2/file-cache.hxx
+++ b/libbuild2/file-cache.hxx
@@ -92,7 +92,12 @@ namespace build2
// to the noop implementation.
//
explicit
- file_cache (bool compress = true);
+ file_cache (bool compress);
+
+ file_cache () = default; // Create uninitialized instance.
+
+ void
+ init (bool compress);
class entry;
diff --git a/libbuild2/file-cache.ixx b/libbuild2/file-cache.ixx
index 8385c90..b4773e7 100644
--- a/libbuild2/file-cache.ixx
+++ b/libbuild2/file-cache.ixx
@@ -173,9 +173,15 @@ namespace build2
: string ();
}
+ inline void file_cache::
+ init (bool compress)
+ {
+ compress_ = compress;
+ }
+
inline file_cache::
file_cache (bool compress)
- : compress_ (compress)
{
+ init (compress);
}
}
diff --git a/libbuild2/function.test.cxx b/libbuild2/function.test.cxx
index b09e4f7..0b3c922 100644
--- a/libbuild2/function.test.cxx
+++ b/libbuild2/function.test.cxx
@@ -50,7 +50,7 @@ namespace build2
//
scheduler sched (1);
global_mutexes mutexes (1);
- file_cache fcache;
+ file_cache fcache (true);
context ctx (sched, mutexes, fcache);
auto& functions (ctx.functions);
diff --git a/libbuild2/test/script/parser.test.cxx b/libbuild2/test/script/parser.test.cxx
index 47d56ce..eb4a59b 100644
--- a/libbuild2/test/script/parser.test.cxx
+++ b/libbuild2/test/script/parser.test.cxx
@@ -168,7 +168,7 @@ namespace build2
//
scheduler sched (1);
global_mutexes mutexes (1);
- file_cache fcache;
+ file_cache fcache (true);
context ctx (sched, mutexes, fcache);
bool scope (false);