[PATCH 1/3] Make 'string_to_grams()' use proper type safe types

Dirk Hohndel dirk at hohndel.org
Wed Jan 8 00:04:54 UTC 2014


Yes, none of them apply.
I could fix them up manually, but it would be much easier if you resent
clean versions...

/D

On Wed, 2014-01-08 at 15:43 +0800, Linus Torvalds wrote:
> Oh Christ. I think I screwed up whitespace because I didn't have the
> right alpine settings for sending.
> 
> If you have trouble applying these, holler.
> 
>               Linus
> 
> On Wed, Jan 8, 2014 at 3:34 PM, Linus Torvalds
> <torvalds at linux-foundation.org> wrote:
> >
> > From: Linus Torvalds <torvalds at linux-foundation.org>
> > Date: Wed, 8 Jan 2014 14:24:35 +0800
> > Subject: [PATCH 1/3] Make 'string_to_grams()' use proper type safe types
> >
> > Make it use 'weight_t' and hide the "grams" part inside the type.  That
> > was the whole point of the weight_t type, after all.  Returning a
> > "double" was always bogus, since we internally always do integer grams
> > (and the function actually used "rint()" to get all the rounding right
> > anyway).
> >
> > As a result, it's now called "string_to_weight()".
> >
> > Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
> > ---
> >
> > This shouldn't really change anything, just type cleanup.
> >
> >  qt-ui/models.cpp | 11 +++++++----
> >  1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
> > index c2b324f97c80..7f5764779c81 100644
> > --- a/qt-ui/models.cpp
> > +++ b/qt-ui/models.cpp
> > @@ -464,13 +464,14 @@ void WeightModel::passInData(const QModelIndex& index,
> > const QVariant& value)
> >         }
> >  }
> >
> > -double string_to_grams(char *str)
> > +weight_t string_to_weight(char *str)
> >  {
> >         char *end;
> >         double value = strtod_flags(str, &end, 0);
> >         QString rest = QString(end).trimmed();
> >         QString local_kg = WeightModel::tr("kg");
> >         QString local_lbs = WeightModel::tr("lbs");
> > +       weight_t weight;
> >
> >         if (rest.startsWith("kg") || rest.startsWith(local_kg))
> >                 goto kg;
> > @@ -480,9 +481,11 @@ double string_to_grams(char *str)
> >         if (prefs.units.weight == prefs.units.LBS)
> >                 goto lbs;
> >  kg:
> > -       return rint(value * 1000);
> > +       weight.grams = rint(value * 1000);
> > +       return weight;
> >  lbs:
> > -       return lbs_to_grams(value);
> > +       weight.grams = lbs_to_grams(value);
> > +       return weight;
> >  }
> >
> >  bool WeightModel::setData(const QModelIndex& index, const QVariant& value,
> > int role)
> > @@ -509,7 +512,7 @@ bool WeightModel::setData(const QModelIndex& index,
> > const QVariant& value, int r
> >                 break;
> >         case WEIGHT:
> >                 if (CHANGED(data, "", "")) {
> > -                       ws->weight.grams =
> > string_to_grams(vString.toUtf8().data());
> > +                       ws->weight =
> > string_to_weight(vString.toUtf8().data());
> >                         // now update the ws_info
> >                         changed = true;
> >                         WSInfoModel *wsim = WSInfoModel::instance();
> > --
> > 1.8.4.2
> >




More information about the subsurface mailing list