replace new/delete with sp
This commit is contained in:
parent
e32731b60b
commit
ab5be0b773
71 changed files with 271 additions and 387 deletions
|
@ -29,13 +29,13 @@
|
|||
namespace xmrig {
|
||||
|
||||
|
||||
static Storage<DnsUvBackend> *storage = nullptr;
|
||||
static std::shared_ptr<Storage<DnsUvBackend>> storage = nullptr;
|
||||
|
||||
|
||||
Storage<DnsUvBackend> &DnsUvBackend::getStorage()
|
||||
{
|
||||
if (storage == nullptr) {
|
||||
storage = new Storage<DnsUvBackend>();
|
||||
if (!storage) {
|
||||
storage = std::make_shared<Storage<DnsUvBackend>>();
|
||||
}
|
||||
|
||||
return *storage;
|
||||
|
@ -67,8 +67,7 @@ xmrig::DnsUvBackend::~DnsUvBackend()
|
|||
storage->release(m_key);
|
||||
|
||||
if (storage->isEmpty()) {
|
||||
delete storage;
|
||||
storage = nullptr;
|
||||
storage.reset();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -87,14 +87,13 @@ xmrig::DaemonClient::DaemonClient(int id, IClientListener *listener) :
|
|||
BaseClient(id, listener)
|
||||
{
|
||||
m_httpListener = std::make_shared<HttpListener>(this);
|
||||
m_timer = new Timer(this);
|
||||
m_timer = std::make_shared<Timer>(this);
|
||||
m_key = m_storage.add(this);
|
||||
}
|
||||
|
||||
|
||||
xmrig::DaemonClient::~DaemonClient()
|
||||
{
|
||||
delete m_timer;
|
||||
delete m_ZMQSocket;
|
||||
}
|
||||
|
||||
|
@ -104,9 +103,6 @@ void xmrig::DaemonClient::deleteLater()
|
|||
if (m_pool.zmq_port() >= 0) {
|
||||
ZMQClose(true);
|
||||
}
|
||||
else {
|
||||
delete this;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ private:
|
|||
uint64_t m_jobSteadyMs = 0;
|
||||
String m_tlsFingerprint;
|
||||
String m_tlsVersion;
|
||||
Timer *m_timer;
|
||||
std::shared_ptr<Timer> m_timer;
|
||||
uint64_t m_blocktemplateRequestHeight = 0;
|
||||
WalletAddress m_walletAddress;
|
||||
|
||||
|
|
|
@ -221,42 +221,42 @@ bool xmrig::Pool::isEqual(const Pool &other) const
|
|||
}
|
||||
|
||||
|
||||
xmrig::IClient *xmrig::Pool::createClient(int id, IClientListener *listener) const
|
||||
std::shared_ptr<xmrig::IClient> xmrig::Pool::createClient(int id, IClientListener* listener) const
|
||||
{
|
||||
IClient *client = nullptr;
|
||||
std::shared_ptr<xmrig::IClient> client;
|
||||
|
||||
if (m_mode == MODE_POOL) {
|
||||
# if defined XMRIG_ALGO_KAWPOW || defined XMRIG_ALGO_GHOSTRIDER
|
||||
const uint32_t f = m_algorithm.family();
|
||||
if ((f == Algorithm::KAWPOW) || (f == Algorithm::GHOSTRIDER) || (m_coin == Coin::RAVEN)) {
|
||||
client = new EthStratumClient(id, Platform::userAgent(), listener);
|
||||
client = std::make_shared<EthStratumClient>(id, Platform::userAgent(), listener);
|
||||
}
|
||||
else
|
||||
# endif
|
||||
{
|
||||
client = new Client(id, Platform::userAgent(), listener);
|
||||
client = std::make_shared<Client>(id, Platform::userAgent(), listener);
|
||||
}
|
||||
}
|
||||
# ifdef XMRIG_FEATURE_HTTP
|
||||
else if (m_mode == MODE_DAEMON) {
|
||||
client = new DaemonClient(id, listener);
|
||||
client = std::make_shared<DaemonClient>(id, listener);
|
||||
}
|
||||
else if (m_mode == MODE_SELF_SELECT) {
|
||||
client = new SelfSelectClient(id, Platform::userAgent(), listener, m_submitToOrigin);
|
||||
client = std::make_shared<SelfSelectClient>(id, Platform::userAgent(), listener, m_submitToOrigin);
|
||||
}
|
||||
# endif
|
||||
# if defined XMRIG_ALGO_KAWPOW || defined XMRIG_ALGO_GHOSTRIDER
|
||||
else if (m_mode == MODE_AUTO_ETH) {
|
||||
client = new AutoClient(id, Platform::userAgent(), listener);
|
||||
client = std::make_shared<AutoClient>(id, Platform::userAgent(), listener);
|
||||
}
|
||||
# endif
|
||||
# ifdef XMRIG_FEATURE_BENCHMARK
|
||||
else if (m_mode == MODE_BENCHMARK) {
|
||||
client = new BenchClient(m_benchmark, listener);
|
||||
client = std::make_shared<BenchClient>(m_benchmark, listener);
|
||||
}
|
||||
# endif
|
||||
|
||||
assert(client != nullptr);
|
||||
assert(client);
|
||||
|
||||
if (client) {
|
||||
client->setPool(*this);
|
||||
|
|
|
@ -127,7 +127,7 @@ public:
|
|||
|
||||
bool isEnabled() const;
|
||||
bool isEqual(const Pool &other) const;
|
||||
IClient *createClient(int id, IClientListener *listener) const;
|
||||
std::shared_ptr<IClient> createClient(int id, IClientListener *listener) const;
|
||||
rapidjson::Value toJSON(rapidjson::Document &doc) const;
|
||||
std::string printableName() const;
|
||||
|
||||
|
|
|
@ -80,17 +80,17 @@ int xmrig::Pools::donateLevel() const
|
|||
}
|
||||
|
||||
|
||||
xmrig::IStrategy *xmrig::Pools::createStrategy(IStrategyListener *listener) const
|
||||
std::shared_ptr<xmrig::IStrategy> xmrig::Pools::createStrategy(IStrategyListener *listener) const
|
||||
{
|
||||
if (active() == 1) {
|
||||
for (const Pool &pool : m_data) {
|
||||
if (pool.isEnabled()) {
|
||||
return new SinglePoolStrategy(pool, retryPause(), retries(), listener);
|
||||
return std::make_shared<SinglePoolStrategy>(pool, retryPause(), retries(), listener);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
auto strategy = new FailoverStrategy(retryPause(), retries(), listener);
|
||||
auto strategy = std::make_shared<FailoverStrategy>(retryPause(), retries(), listener);
|
||||
for (const Pool &pool : m_data) {
|
||||
if (pool.isEnabled()) {
|
||||
strategy->add(pool);
|
||||
|
@ -154,7 +154,7 @@ void xmrig::Pools::load(const IJsonReader &reader)
|
|||
|
||||
Pool pool(value);
|
||||
if (pool.isValid()) {
|
||||
m_data.push_back(std::move(pool));
|
||||
m_data.emplace_back(std::move(pool));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ public:
|
|||
|
||||
bool isEqual(const Pools &other) const;
|
||||
int donateLevel() const;
|
||||
IStrategy *createStrategy(IStrategyListener *listener) const;
|
||||
std::shared_ptr<IStrategy> createStrategy(IStrategyListener *listener) const;
|
||||
rapidjson::Value toJSON(rapidjson::Document &doc) const;
|
||||
size_t active() const;
|
||||
uint32_t benchSize() const;
|
||||
|
|
|
@ -56,13 +56,12 @@ xmrig::SelfSelectClient::SelfSelectClient(int id, const char *agent, IClientList
|
|||
m_listener(listener)
|
||||
{
|
||||
m_httpListener = std::make_shared<HttpListener>(this);
|
||||
m_client = new Client(id, agent, this);
|
||||
m_client = std::make_shared<Client>(id, agent, this);
|
||||
}
|
||||
|
||||
|
||||
xmrig::SelfSelectClient::~SelfSelectClient()
|
||||
{
|
||||
delete m_client;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ private:
|
|||
bool m_active = false;
|
||||
bool m_quiet = false;
|
||||
const bool m_submitToOrigin;
|
||||
IClient *m_client;
|
||||
std::shared_ptr<IClient> m_client;
|
||||
IClientListener *m_listener;
|
||||
int m_retries = 5;
|
||||
int64_t m_failures = 0;
|
||||
|
|
|
@ -53,7 +53,7 @@ public:
|
|||
inline int64_t sequence() const override { return 0; }
|
||||
inline int64_t submit(const JobResult &) override { return 0; }
|
||||
inline void connect(const Pool &pool) override { setPool(pool); }
|
||||
inline void deleteLater() override { delete this; }
|
||||
inline void deleteLater() override {}
|
||||
inline void setAlgo(const Algorithm &algo) override {}
|
||||
inline void setEnabled(bool enabled) override {}
|
||||
inline void setProxy(const ProxyUrl &proxy) override {}
|
||||
|
|
|
@ -47,7 +47,7 @@ xmrig::FailoverStrategy::FailoverStrategy(int retryPause, int retries, IStrategy
|
|||
|
||||
xmrig::FailoverStrategy::~FailoverStrategy()
|
||||
{
|
||||
for (IClient *client : m_pools) {
|
||||
for (auto& client : m_pools) {
|
||||
client->deleteLater();
|
||||
}
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ xmrig::FailoverStrategy::~FailoverStrategy()
|
|||
|
||||
void xmrig::FailoverStrategy::add(const Pool &pool)
|
||||
{
|
||||
IClient *client = pool.createClient(static_cast<int>(m_pools.size()), this);
|
||||
std::shared_ptr<IClient> client = pool.createClient(static_cast<int>(m_pools.size()), this);
|
||||
|
||||
client->setRetries(m_retries);
|
||||
client->setRetryPause(m_retryPause * 1000);
|
||||
|
@ -93,7 +93,7 @@ void xmrig::FailoverStrategy::resume()
|
|||
|
||||
void xmrig::FailoverStrategy::setAlgo(const Algorithm &algo)
|
||||
{
|
||||
for (IClient *client : m_pools) {
|
||||
for (auto& client : m_pools) {
|
||||
client->setAlgo(algo);
|
||||
}
|
||||
}
|
||||
|
@ -101,7 +101,7 @@ void xmrig::FailoverStrategy::setAlgo(const Algorithm &algo)
|
|||
|
||||
void xmrig::FailoverStrategy::setProxy(const ProxyUrl &proxy)
|
||||
{
|
||||
for (IClient *client : m_pools) {
|
||||
for (auto& client : m_pools) {
|
||||
client->setProxy(proxy);
|
||||
}
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ void xmrig::FailoverStrategy::setProxy(const ProxyUrl &proxy)
|
|||
|
||||
void xmrig::FailoverStrategy::stop()
|
||||
{
|
||||
for (auto &pool : m_pools) {
|
||||
for (auto& pool : m_pools) {
|
||||
pool->disconnect();
|
||||
}
|
||||
|
||||
|
@ -122,7 +122,7 @@ void xmrig::FailoverStrategy::stop()
|
|||
|
||||
void xmrig::FailoverStrategy::tick(uint64_t now)
|
||||
{
|
||||
for (IClient *client : m_pools) {
|
||||
for (auto& client : m_pools) {
|
||||
client->tick(now);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ public:
|
|||
|
||||
protected:
|
||||
inline bool isActive() const override { return m_active >= 0; }
|
||||
inline IClient *client() const override { return isActive() ? active() : m_pools[m_index]; }
|
||||
inline IClient* client() const override { return isActive() ? active() : m_pools[m_index].get(); }
|
||||
|
||||
int64_t submit(const JobResult &result) override;
|
||||
void connect() override;
|
||||
|
@ -67,7 +67,7 @@ protected:
|
|||
void onVerifyAlgorithm(const IClient *client, const Algorithm &algorithm, bool *ok) override;
|
||||
|
||||
private:
|
||||
inline IClient *active() const { return m_pools[static_cast<size_t>(m_active)]; }
|
||||
inline IClient* active() const { return m_pools[static_cast<size_t>(m_active)].get(); }
|
||||
|
||||
const bool m_quiet;
|
||||
const int m_retries;
|
||||
|
@ -75,7 +75,7 @@ private:
|
|||
int m_active = -1;
|
||||
IStrategyListener *m_listener;
|
||||
size_t m_index = 0;
|
||||
std::vector<IClient*> m_pools;
|
||||
std::vector<std::shared_ptr<IClient>> m_pools;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ void xmrig::SinglePoolStrategy::resume()
|
|||
return;
|
||||
}
|
||||
|
||||
m_listener->onJob(this, m_client, m_client->job(), rapidjson::Value(rapidjson::kNullType));
|
||||
m_listener->onJob(this, m_client.get(), m_client->job(), rapidjson::Value(rapidjson::kNullType));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ public:
|
|||
|
||||
protected:
|
||||
inline bool isActive() const override { return m_active; }
|
||||
inline IClient *client() const override { return m_client; }
|
||||
inline IClient* client() const override { return m_client.get(); }
|
||||
|
||||
int64_t submit(const JobResult &result) override;
|
||||
void connect() override;
|
||||
|
@ -68,7 +68,7 @@ protected:
|
|||
|
||||
private:
|
||||
bool m_active;
|
||||
IClient *m_client;
|
||||
std::shared_ptr<IClient> m_client;
|
||||
IStrategyListener *m_listener;
|
||||
};
|
||||
|
||||
|
|
|
@ -23,22 +23,23 @@
|
|||
|
||||
|
||||
#include <cassert>
|
||||
#include <memory>
|
||||
#include <uv.h>
|
||||
|
||||
|
||||
namespace xmrig {
|
||||
|
||||
|
||||
static MemPool<XMRIG_NET_BUFFER_CHUNK_SIZE, XMRIG_NET_BUFFER_INIT_CHUNKS> *pool = nullptr;
|
||||
static std::shared_ptr<MemPool<XMRIG_NET_BUFFER_CHUNK_SIZE, XMRIG_NET_BUFFER_INIT_CHUNKS>> pool;
|
||||
|
||||
|
||||
inline MemPool<XMRIG_NET_BUFFER_CHUNK_SIZE, XMRIG_NET_BUFFER_INIT_CHUNKS> *getPool()
|
||||
{
|
||||
if (!pool) {
|
||||
pool = new MemPool<XMRIG_NET_BUFFER_CHUNK_SIZE, XMRIG_NET_BUFFER_INIT_CHUNKS>();
|
||||
pool = std::make_shared<MemPool<XMRIG_NET_BUFFER_CHUNK_SIZE, XMRIG_NET_BUFFER_INIT_CHUNKS>>();
|
||||
}
|
||||
|
||||
return pool;
|
||||
return pool.get();
|
||||
}
|
||||
|
||||
|
||||
|
@ -59,8 +60,7 @@ void xmrig::NetBuffer::destroy()
|
|||
|
||||
assert(pool->freeSize() == pool->size());
|
||||
|
||||
delete pool;
|
||||
pool = nullptr;
|
||||
pool.reset();
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue