[PATCH] Pictures: prevent a 'will always evaluate as true' warning
Dirk Hohndel
dirk at hohndel.org
Wed Jul 23 08:17:35 PDT 2014
I don't like this patch. It artificially introduces a pointer just to shut
up the compiler.
NAK
/D
On Sun, Jul 20, 2014 at 03:50:28PM +0300, Lubomir I. Ivanov wrote:
> 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
>
> _______________________________________________
> subsurface mailing list
> subsurface at hohndel.org
> http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface
More information about the subsurface
mailing list