summaryrefslogtreecommitdiff
path: root/src/database/database.hpp
diff options
context:
space:
mode:
authorIvan Shapovalov <intelfx@intelfx.name>2016-11-27 14:17:44 +0300
committerIvan Shapovalov <intelfx@intelfx.name>2017-01-24 11:56:15 +0300
commit6dc18c1c57d5fef75e7682b1fdb8268ec3786908 (patch)
treea14dab661b7d7088263e529c1722033a8db7c95a /src/database/database.hpp
parent5bcd92f2974d94e8add31816d3b9d48a42289500 (diff)
Database: ref-count the internal map for caching
Diffstat (limited to 'src/database/database.hpp')
-rw-r--r--src/database/database.hpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/database/database.hpp b/src/database/database.hpp
index 7c05a20b..92fb383c 100644
--- a/src/database/database.hpp
+++ b/src/database/database.hpp
@@ -72,12 +72,14 @@ class Database {
// The database consists of separate database entries, stored together in a vector
static const std::vector<const DatabaseEntry*> database;
+ Database() = default;
+
// The constructor with a user-provided database overlay (potentially an empty vector)
explicit Database(const Queue &queue, const std::vector<std::string> &routines,
const Precision precision, const std::vector<const DatabaseEntry*> &overlay);
// Accessor of values by key
- size_t operator[](const std::string key) const { return parameters_.find(key)->second; }
+ size_t operator[](const std::string key) const { return parameters_->find(key)->second; }
// Obtain a list of OpenCL pre-processor defines based on the parameters
std::string GetDefines() const;
@@ -90,7 +92,7 @@ class Database {
const std::vector<const DatabaseEntry*> &db) const;
// Found parameters suitable for this device/kernel
- Parameters parameters_;
+ std::shared_ptr<Parameters> parameters_;
};
// =================================================================================================