diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2020-02-04 14:36:35 -0500 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2020-02-04 14:36:35 -0500 |
| commit | 080ec28eb437042102d4d7362ed81c413c8d85f5 (patch) | |
| tree | e600c496d5bdc3c217993d8591843677a269fb47 /src/libwalletqt/AddressBook.h | |
| parent | 8f197bc6ac31912834159088248c201c5128a4ce (diff) | |
| parent | 742a4659f4624efedb3bf6c288db77b4abd66baa (diff) | |
| download | monzero-gui-080ec28eb437042102d4d7362ed81c413c8d85f5.tar.gz monzero-gui-080ec28eb437042102d4d7362ed81c413c8d85f5.tar.xz monzero-gui-080ec28eb437042102d4d7362ed81c413c8d85f5.zip | |
Merge pull request #2758
742a465 AddressBook: thread-safety, fix use-after-free (xiphon)
Diffstat (limited to 'src/libwalletqt/AddressBook.h')
| -rw-r--r-- | src/libwalletqt/AddressBook.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libwalletqt/AddressBook.h b/src/libwalletqt/AddressBook.h index 84566615..1d9309b3 100644 --- a/src/libwalletqt/AddressBook.h +++ b/src/libwalletqt/AddressBook.h @@ -31,6 +31,7 @@ #include <wallet/api/wallet2_api.h> #include <QObject> +#include <QReadWriteLock> #include <QList> #include <QDateTime> @@ -43,10 +44,9 @@ class AddressBook : public QObject { Q_OBJECT public: - Q_INVOKABLE QList<Monero::AddressBookRow*> getAll(bool update = false) const; - Q_INVOKABLE Monero::AddressBookRow * getRow(int index) const; - Q_INVOKABLE bool addRow(const QString &address, const QString &payment_id, const QString &description) const; - Q_INVOKABLE bool deleteRow(int rowId) const; + Q_INVOKABLE bool getRow(int index, std::function<void (Monero::AddressBookRow &)> callback) const; + Q_INVOKABLE bool addRow(const QString &address, const QString &payment_id, const QString &description); + Q_INVOKABLE bool deleteRow(int rowId); quint64 count() const; Q_INVOKABLE QString errorString() const; Q_INVOKABLE int errorCode() const; @@ -61,6 +61,8 @@ public: Q_ENUM(ErrorCode); +private: + void getAll(); signals: void refreshStarted() const; @@ -73,6 +75,7 @@ private: explicit AddressBook(Monero::AddressBook * abImpl, QObject *parent); friend class Wallet; Monero::AddressBook * m_addressBookImpl; + mutable QReadWriteLock m_lock; mutable QList<Monero::AddressBookRow*> m_rows; }; |
