diff options
author | Ivan Shapovalov <intelfx@intelfx.name> | 2016-11-27 14:17:44 +0300 |
---|---|---|
committer | Ivan Shapovalov <intelfx@intelfx.name> | 2017-01-24 11:56:15 +0300 |
commit | 6dc18c1c57d5fef75e7682b1fdb8268ec3786908 (patch) | |
tree | a14dab661b7d7088263e529c1722033a8db7c95a /src/database/database.cpp | |
parent | 5bcd92f2974d94e8add31816d3b9d48a42289500 (diff) |
Database: ref-count the internal map for caching
Diffstat (limited to 'src/database/database.cpp')
-rw-r--r-- | src/database/database.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/database/database.cpp b/src/database/database.cpp index cf548d46..9b4e8119 100644 --- a/src/database/database.cpp +++ b/src/database/database.cpp @@ -65,7 +65,7 @@ const std::unordered_map<std::string, std::string> Database::kVendorNames{ // This takes an optional overlay database in case of custom tuning or custom kernels. Database::Database(const Queue &queue, const std::vector<std::string> &kernels, const Precision precision, const std::vector<const DatabaseEntry*> &overlay): - parameters_{} { + parameters_(std::make_shared<Parameters>()) { // Finds information of the current device auto device = queue.GetDevice(); @@ -87,7 +87,7 @@ Database::Database(const Queue &queue, const std::vector<std::string> &kernels, for (auto &db: { database, overlay}) { search_result = Search(kernel, device_type, device_vendor, device_name, precision, db); if (search_result) { - parameters_.insert(search_result->begin(), search_result->end()); + parameters_->insert(search_result->begin(), search_result->end()); break; } } @@ -101,7 +101,7 @@ Database::Database(const Queue &queue, const std::vector<std::string> &kernels, // Returns a list of OpenCL pre-processor defines in string form std::string Database::GetDefines() const { std::string defines{}; - for (auto ¶meter: parameters_) { + for (auto ¶meter: *parameters_) { defines += "#define "+parameter.first+" "+ToString(parameter.second)+"\n"; } return defines; |