[PATCH] Pictures: prevent a 'will always evaluate as true' warning
Lubomir I. Ivanov
neolit123 at gmail.com
Sun Jul 20 05:50:28 PDT 2014
From: "Lubomir I. Ivanov" <neolit123 at gmail.com>
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 <neolit123 at gmail.com>
---
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
More information about the subsurface
mailing list