From 6f2ef7f09f85916fcf0c2910c374227b50208d89 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Tue, 9 Apr 2019 15:51:15 -0700 Subject: [PATCH] Safe add addresses to data model --- src/rpc.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/rpc.cpp b/src/rpc.cpp index 3065fff..01f941d 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -676,30 +676,35 @@ void RPC::getInfoThenRefresh(bool force) { void RPC::refreshAddresses() { if (conn == nullptr) return noConnection(); - - delete zaddresses; - zaddresses = new QList(); + + auto newzaddresses = new QList(); getZAddresses([=] (json reply) { for (auto& it : reply.get()) { auto addr = QString::fromStdString(it.get()); - zaddresses->push_back(addr); + newzaddresses->push_back(addr); } + delete zaddresses; + zaddresses = newzaddresses; + // Refresh the sent and received txs from all these z-addresses refreshSentZTrans(); refreshReceivedZTrans(*zaddresses); }); - delete taddresses; - taddresses = new QList(); + + auto newtaddresses = new QList(); getTAddresses([=] (json reply) { for (auto& it : reply.get()) { auto addr = QString::fromStdString(it.get()); if (Settings::isTAddress(addr)) - taddresses->push_back(addr); + newtaddresses->push_back(addr); } + delete taddresses; + taddresses = newtaddresses; + // If there are no t Addresses, create one newTaddr([=] (json reply) { // What if taddress gets deleted before this executes?