From: "Lubomir I. Ivanov" <[email protected]>

If you take the address of a extern struct and pass it to
a macro (FOR_EACH_PICTURE) where there is a check if this
address is not NULL you will get a -Waddress warning.

The address of such a variable cannot ever be NULL.

To solve that we create a function local pointer and pass
it to the macro itself.

On a wider scale (i.e. the macro is used with a lot of different
extern variables) the better solution is to define another
macro FOR_EACH_PICTURE_SAFE where only the NULL check exists.

Signed-off-by: Lubomir I. Ivanov <[email protected]>
---
 qt-ui/divepicturewidget.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/qt-ui/divepicturewidget.cpp b/qt-ui/divepicturewidget.cpp
index fd64f61..8e2f097 100644
--- a/qt-ui/divepicturewidget.cpp
+++ b/qt-ui/divepicturewidget.cpp
@@ -34,20 +34,21 @@ SPixmap scaleImages(const QString &s)
 
 void DivePictureModel::updateDivePictures()
 {
+       struct dive *displayed = &displayed_dive;
        if (numberOfPictures != 0) {
                beginRemoveRows(QModelIndex(), 0, numberOfPictures - 1);
                numberOfPictures = 0;
                endRemoveRows();
        }
 
-       numberOfPictures = dive_get_picture_count(&displayed_dive);
+       numberOfPictures = dive_get_picture_count(displayed);
        if (numberOfPictures == 0) {
                return;
        }
 
        stringPixmapCache.clear();
        QStringList pictures;
-       FOR_EACH_PICTURE (&displayed_dive) {
+       FOR_EACH_PICTURE (displayed) {
                stringPixmapCache[QString(picture->filename)].picture = picture;
                pictures.push_back(QString(picture->filename));
        }
-- 
1.7.11.msysgit.0

_______________________________________________
subsurface mailing list
[email protected]
http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to