[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [digikam/frameworks] libs: Use quinptr to pass the deleted album pointer in albumHasBeenDeleted
From:       Marcel Wiesweg <marcel.wiesweg () gmx ! de>
Date:       2015-09-25 17:19:33
Message-ID: E1ZfWej-0004gF-Mi () scm ! kde ! org
[Download RAW message or body]

Git commit 2e7242ff5902be0348445e0ac6ce1704f3a8364b by Marcel Wiesweg.
Committed on 25/09/2015 at 17:19.
Pushed by mwiesweg into branch 'frameworks'.

Use quinptr to pass the deleted album pointer in albumHasBeenDeleted

After delete, the pointer may be set to 0 on some platforms.
quintptr makes it absolutely clear that there is no object anymore
behind the identifier.

M  +13   -7    libs/album/albummanager.cpp
M  +1    -1    libs/album/albummanager.h
M  +4    -4    libs/models/abstractalbummodel.cpp
M  +1    -1    libs/models/abstractalbummodel.h
M  +1    -1    libs/models/abstractalbummodelpriv.h

http://commits.kde.org/digikam/2e7242ff5902be0348445e0ac6ce1704f3a8364b

diff --git a/libs/album/albummanager.cpp b/libs/album/albummanager.cpp
index ac38328..ca980e0 100644
--- a/libs/album/albummanager.cpp
+++ b/libs/album/albummanager.cpp
@@ -1768,8 +1768,9 @@ void AlbumManager::scanSAlbums()
         emit signalAlbumAboutToBeDeleted(album);
         d->allAlbumsIdHash.remove(album->globalID());
         emit signalAlbumDeleted(album);
+        quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
         delete album;
-        emit signalAlbumHasBeenDeleted(album);
+        emit signalAlbumHasBeenDeleted(deletedAlbum);
     }
 
     // add new albums
@@ -2558,7 +2559,7 @@ bool AlbumManager::moveTAlbum(TAlbum* album, TAlbum* newParent, QString& errMsg)
 
     album->setParent(0);
     emit signalAlbumDeleted(album);
-    emit signalAlbumHasBeenDeleted(album);
+    emit signalAlbumHasBeenDeleted(reinterpret_cast<quintptr>(album));
 
     emit signalAlbumAboutToBeAdded(album, newParent, newParent->lastChild());
     ChangingDB changing(d);
@@ -2856,8 +2857,9 @@ bool AlbumManager::deleteSAlbum(SAlbum* album)
 
     d->allAlbumsIdHash.remove(album->globalID());
     emit signalAlbumDeleted(album);
+    quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
     delete album;
-    emit signalAlbumHasBeenDeleted(album);
+    emit signalAlbumHasBeenDeleted(deletedAlbum);
 
     return true;
 }
@@ -2953,8 +2955,9 @@ void AlbumManager::removePAlbum(PAlbum* album)
     }
 
     emit signalAlbumDeleted(album);
+    quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
     delete album;
-    emit signalAlbumHasBeenDeleted(album);
+    emit signalAlbumHasBeenDeleted(deletedAlbum);
 }
 
 void AlbumManager::insertTAlbum(TAlbum* album, TAlbum* parent)
@@ -3014,8 +3017,9 @@ void AlbumManager::removeTAlbum(TAlbum* album)
     }
 
     emit signalAlbumDeleted(album);
+    quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
     delete album;
-    emit signalAlbumHasBeenDeleted(album);
+    emit signalAlbumHasBeenDeleted(deletedAlbum);
 }
 
 void AlbumManager::notifyAlbumDeletion(Album* album)
@@ -3245,8 +3249,9 @@ void AlbumManager::slotDatesJobData(const QMap<QDateTime, int>& datesStatMap)
         emit signalAlbumAboutToBeDeleted(album);
         d->allAlbumsIdHash.remove(album->globalID());
         emit signalAlbumDeleted(album);
+        quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
         delete album;
-        emit signalAlbumHasBeenDeleted(album);
+        emit signalAlbumHasBeenDeleted(deletedAlbum);
     }
 
     for (QMap<int, DAlbum*>::const_iterator it = yAlbumMap.constBegin();
@@ -3256,8 +3261,9 @@ void AlbumManager::slotDatesJobData(const QMap<QDateTime, int>& datesStatMap)
         emit signalAlbumAboutToBeDeleted(album);
         d->allAlbumsIdHash.remove(album->globalID());
         emit signalAlbumDeleted(album);
+        quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
         delete album;
-        emit signalAlbumHasBeenDeleted(album);
+        emit signalAlbumHasBeenDeleted(deletedAlbum);
     }
 
     d->dAlbumsCount = yearMonthMap;
diff --git a/libs/album/albummanager.h b/libs/album/albummanager.h
index 4f25118..53aa2ae 100644
--- a/libs/album/albummanager.h
+++ b/libs/album/albummanager.h
@@ -619,7 +619,7 @@ Q_SIGNALS:
     void signalAlbumDeleted(Album* album);
     /// The album is deleted, the object can no longer be accessed.
     /// For identification purposes, the former album pointer is passed.
-    void signalAlbumHasBeenDeleted(void*);
+    void signalAlbumHasBeenDeleted(quintptr);
     void signalAlbumsCleared();
     void signalAlbumCurrentChanged(QList<Album*> album);
     void signalAllAlbumsLoaded();
diff --git a/libs/models/abstractalbummodel.cpp b/libs/models/abstractalbummodel.cpp
index 3c3de19..3e1f3ca 100644
--- a/libs/models/abstractalbummodel.cpp
+++ b/libs/models/abstractalbummodel.cpp
@@ -62,8 +62,8 @@ AbstractAlbumModel::AbstractAlbumModel(Album::Type albumType, Album* const rootA
     connect(AlbumManager::instance(), SIGNAL(signalAlbumAboutToBeDeleted(Album*)),
             this, SLOT(slotAlbumAboutToBeDeleted(Album*)));
 
-    connect(AlbumManager::instance(), SIGNAL(signalAlbumHasBeenDeleted(void*)),
-            this, SLOT(slotAlbumHasBeenDeleted(void*)));
+    connect(AlbumManager::instance(), &AlbumManager::signalAlbumHasBeenDeleted,
+            this, &AbstractAlbumModel::slotAlbumHasBeenDeleted);
 
     connect(AlbumManager::instance(), SIGNAL(signalAlbumsCleared()),
             this, SLOT(slotAlbumsCleared()));
@@ -485,10 +485,10 @@ void AbstractAlbumModel::slotAlbumAboutToBeDeleted(Album* album)
     albumCleared(album);
 
     // store album for slotAlbumHasBeenDeleted
-    d->removingAlbum = album;
+    d->removingAlbum = reinterpret_cast<quintptr>(album);
 }
 
-void AbstractAlbumModel::slotAlbumHasBeenDeleted(void* p)
+void AbstractAlbumModel::slotAlbumHasBeenDeleted(quintptr p)
 {
     if (d->removingAlbum == p)
     {
diff --git a/libs/models/abstractalbummodel.h b/libs/models/abstractalbummodel.h
index 64340d4..1b0aea4 100644
--- a/libs/models/abstractalbummodel.h
+++ b/libs/models/abstractalbummodel.h
@@ -192,7 +192,7 @@ protected Q_SLOTS:
     void slotAlbumAboutToBeAdded(Album* album, Album* parent, Album* prev);
     void slotAlbumAdded(Album*);
     void slotAlbumAboutToBeDeleted(Album* album);
-    void slotAlbumHasBeenDeleted(void*);
+    void slotAlbumHasBeenDeleted(quintptr);
     void slotAlbumsCleared();
     void slotAlbumIconChanged(Album* album);
     void slotAlbumRenamed(Album* album);
diff --git a/libs/models/abstractalbummodelpriv.h b/libs/models/abstractalbummodelpriv.h
index 7021230..ad733c7 100644
--- a/libs/models/abstractalbummodelpriv.h
+++ b/libs/models/abstractalbummodelpriv.h
@@ -51,7 +51,7 @@ public:
     AlbumModelDragDropHandler*            dragDropHandler;
 
     Album*                                addingAlbum;
-    Album*                                removingAlbum;
+    quintptr                              removingAlbum;
 
 public:
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic