Safe add addresses to data model

This commit is contained in:
Aditya Kulkarni
2019-04-09 15:51:15 -07:00
parent bc23d72429
commit 6f2ef7f09f

View File

@@ -677,29 +677,34 @@ void RPC::refreshAddresses() {
if (conn == nullptr) if (conn == nullptr)
return noConnection(); return noConnection();
delete zaddresses; auto newzaddresses = new QList<QString>();
zaddresses = new QList<QString>();
getZAddresses([=] (json reply) { getZAddresses([=] (json reply) {
for (auto& it : reply.get<json::array_t>()) { for (auto& it : reply.get<json::array_t>()) {
auto addr = QString::fromStdString(it.get<json::string_t>()); auto addr = QString::fromStdString(it.get<json::string_t>());
zaddresses->push_back(addr); newzaddresses->push_back(addr);
} }
delete zaddresses;
zaddresses = newzaddresses;
// Refresh the sent and received txs from all these z-addresses // Refresh the sent and received txs from all these z-addresses
refreshSentZTrans(); refreshSentZTrans();
refreshReceivedZTrans(*zaddresses); refreshReceivedZTrans(*zaddresses);
}); });
delete taddresses;
taddresses = new QList<QString>(); auto newtaddresses = new QList<QString>();
getTAddresses([=] (json reply) { getTAddresses([=] (json reply) {
for (auto& it : reply.get<json::array_t>()) { for (auto& it : reply.get<json::array_t>()) {
auto addr = QString::fromStdString(it.get<json::string_t>()); auto addr = QString::fromStdString(it.get<json::string_t>());
if (Settings::isTAddress(addr)) if (Settings::isTAddress(addr))
taddresses->push_back(addr); newtaddresses->push_back(addr);
} }
delete taddresses;
taddresses = newtaddresses;
// If there are no t Addresses, create one // If there are no t Addresses, create one
newTaddr([=] (json reply) { newTaddr([=] (json reply) {
// What if taddress gets deleted before this executes? // What if taddress gets deleted before this executes?