diff --git a/src/wallet/monero_wallet.cpp b/src/wallet/monero_wallet.cpp index 665528b..3c1fba8 100644 --- a/src/wallet/monero_wallet.cpp +++ b/src/wallet/monero_wallet.cpp @@ -1116,17 +1116,17 @@ namespace monero { void monero_wallet::add_listener(monero_wallet_listener& listener) { MTRACE("add_listener()"); - m_listeners.push_back(&listener); + m_listeners.insert(&listener); m_w2_listener->update_listening(); } void monero_wallet::remove_listener(monero_wallet_listener& listener) { MTRACE("remove_listener()"); - m_listeners.erase(remove(m_listeners.begin(), m_listeners.end(), &listener), m_listeners.end()); + m_listeners.erase(&listener); m_w2_listener->update_listening(); } - vector monero_wallet::get_listeners() { + set monero_wallet::get_listeners() { MTRACE("get_listeners()"); return m_listeners; } diff --git a/src/wallet/monero_wallet.h b/src/wallet/monero_wallet.h index 5d4f673..365629d 100644 --- a/src/wallet/monero_wallet.h +++ b/src/wallet/monero_wallet.h @@ -402,7 +402,7 @@ namespace monero { /** * Get the listeners registered with the wallet. */ - vector get_listeners(); + set get_listeners(); /** * Synchronize the wallet with the daemon as a one-time synchronous process. @@ -1300,7 +1300,7 @@ namespace monero { friend struct wallet2_listener; unique_ptr m_w2; // internal wallet implementation unique_ptr m_w2_listener; // internal wallet implementation listener - vector m_listeners; // external wallet listeners + set m_listeners; // external wallet listeners void init_common(); vector get_subaddresses_aux(uint32_t account_idx, const vector& subaddress_indices, const vector& transfers) const;