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?