Skip to content

Commit 222965b

Browse files
committed
rgw/d4n: Use unique_ptr rather than bare new/delete
Signed-off-by: Adam C. Emerson <[email protected]>
1 parent 0b48b40 commit 222965b

File tree

2 files changed

+20
-16
lines changed

2 files changed

+20
-16
lines changed

src/rgw/driver/d4n/rgw_sal_d4n.cc

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ D4NFilterDriver::D4NFilterDriver(Driver* _next, boost::asio::io_context& io_cont
4141
partition_info.name = "d4n";
4242
partition_info.type = "read-cache";
4343
partition_info.size = g_conf()->rgw_d4n_l1_datacache_size;
44-
cacheDriver = new rgw::cache::SSDDriver(partition_info);
44+
cacheDriver = std::make_unique<rgw::cache::SSDDriver>(partition_info);
4545
}
4646

4747
D4NFilterDriver::~D4NFilterDriver() = default;
@@ -52,9 +52,11 @@ int D4NFilterDriver::initialize(CephContext *cct, const DoutPrefixProvider *dpp)
5252
using boost::redis::config;
5353

5454
conn = std::make_shared<connection>(boost::asio::make_strand(io_context));
55-
objDir = new rgw::d4n::ObjectDirectory(conn);
56-
blockDir = new rgw::d4n::BlockDirectory(conn);
57-
policyDriver = new rgw::d4n::PolicyDriver(conn, cacheDriver, "lfuda");
55+
objDir = std::make_unique<rgw::d4n::ObjectDirectory>(conn);
56+
blockDir = std::make_unique<rgw::d4n::BlockDirectory>(conn);
57+
policyDriver = std::make_unique<rgw::d4n::PolicyDriver>(conn,
58+
cacheDriver.get(),
59+
"lfuda");
5860

5961
std::string address = cct->_conf->rgw_d4n_address;
6062
config cfg;
@@ -255,10 +257,10 @@ void D4NFilterDriver::shutdown()
255257
// call cancel() on the connection's executor
256258
boost::asio::dispatch(conn->get_executor(), [c = conn] { c->cancel(); });
257259

258-
delete cacheDriver;
259-
delete objDir;
260-
delete blockDir;
261-
delete policyDriver;
260+
cacheDriver.reset();
261+
objDir.reset();
262+
blockDir.reset();
263+
policyDriver.reset();
262264

263265
next->shutdown();
264266
}

src/rgw/driver/d4n/rgw_sal_d4n.h

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ using boost::redis::connection;
4242
class D4NFilterDriver : public FilterDriver {
4343
private:
4444
std::shared_ptr<connection> conn;
45-
rgw::cache::CacheDriver* cacheDriver;
46-
rgw::d4n::ObjectDirectory* objDir;
47-
rgw::d4n::BlockDirectory* blockDir;
48-
rgw::d4n::PolicyDriver* policyDriver;
45+
std::unique_ptr<rgw::cache::CacheDriver> cacheDriver;
46+
std::unique_ptr<rgw::d4n::ObjectDirectory> objDir;
47+
std::unique_ptr<rgw::d4n::BlockDirectory> blockDir;
48+
std::unique_ptr<rgw::d4n::PolicyDriver> policyDriver;
4949
boost::asio::io_context& io_context;
5050

5151
public:
@@ -64,10 +64,12 @@ class D4NFilterDriver : public FilterDriver {
6464
const rgw_placement_rule *ptail_placement_rule,
6565
uint64_t olh_epoch,
6666
const std::string& unique_tag) override;
67-
rgw::cache::CacheDriver* get_cache_driver() { return cacheDriver; }
68-
rgw::d4n::ObjectDirectory* get_obj_dir() { return objDir; }
69-
rgw::d4n::BlockDirectory* get_block_dir() { return blockDir; }
70-
rgw::d4n::PolicyDriver* get_policy_driver() { return policyDriver; }
67+
rgw::cache::CacheDriver* get_cache_driver() { return cacheDriver.get(); }
68+
69+
70+
rgw::d4n::ObjectDirectory* get_obj_dir() { return objDir.get(); }
71+
rgw::d4n::BlockDirectory* get_block_dir() { return blockDir.get(); }
72+
rgw::d4n::PolicyDriver* get_policy_driver() { return policyDriver.get(); }
7173
void shutdown() override;
7274
};
7375

0 commit comments

Comments
 (0)