@@ -221,32 +221,48 @@ void TreeOperations::deleteDbKey(ConnectionsTree::KeyItem& key,
221221 [this , &key](RedisClient::Response) {
222222 key.setRemoved ();
223223 QRegExp filter (key.getFullPath (), Qt::CaseSensitive, QRegExp::Wildcard);
224- emit m_events->closeDbKeys (m_connection, key.getDbIndex (), filter);
224+ if (m_events) m_events->closeDbKeys (m_connection, key.getDbIndex (), filter);
225225 },
226226 [this , callback](const QString& err) {
227227 QString errorMsg =
228228 QCoreApplication::translate (" RDM" , " Delete key error: %1" ).arg (err);
229229 callback (errorMsg);
230- m_events->error (errorMsg);
230+ if (m_events) m_events->error (errorMsg);
231231 });
232232}
233233
234234void TreeOperations::deleteDbKeys (ConnectionsTree::DatabaseItem& db) {
235- requestBulkOperation (db, BulkOperations::Manager::Operation::DELETE_KEYS,
236- [this , &db](QRegExp filter, int , const QStringList&) {
237- db.reload ();
238- emit m_events->closeDbKeys (m_connection,
239- db.getDbIndex (), filter);
240- });
235+ auto self = sharedFromThis ().toWeakRef ();
236+ requestBulkOperation (
237+ db, BulkOperations::Manager::Operation::DELETE_KEYS,
238+ [self, this , &db](QRegExp filter, int , const QStringList&) {
239+ if (!self) {
240+ return ;
241+ }
242+
243+ db.reload ();
244+
245+ if (m_events) {
246+ emit m_events->closeDbKeys (m_connection, db.getDbIndex (), filter);
247+ }
248+ });
241249}
242250
243251void TreeOperations::deleteDbNamespace (ConnectionsTree::NamespaceItem& ns) {
244- requestBulkOperation (ns, BulkOperations::Manager::Operation::DELETE_KEYS,
245- [this , &ns](QRegExp filter, int , const QStringList&) {
246- ns.setRemoved ();
247- emit m_events->closeDbKeys (m_connection,
248- ns.getDbIndex (), filter);
249- });
252+ auto self = sharedFromThis ().toWeakRef ();
253+ requestBulkOperation (
254+ ns, BulkOperations::Manager::Operation::DELETE_KEYS,
255+ [this , self, &ns](QRegExp filter, int , const QStringList&) {
256+ if (!self) {
257+ return ;
258+ }
259+
260+ ns.setRemoved ();
261+
262+ if (m_events) {
263+ emit m_events->closeDbKeys (m_connection, ns.getDbIndex (), filter);
264+ }
265+ });
250266}
251267
252268void TreeOperations::setTTL (ConnectionsTree::AbstractNamespaceItem& ns) {
0 commit comments