Skip to content

Commit c705670

Browse files
committed
Upgrade INT_ methods to numeric_limits
1 parent 17cd2fd commit c705670

18 files changed

+41
-34
lines changed

scripts/sipify.pl

+2
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,8 @@ sub fix_constants {
437437
$line =~ s/\bstd::numeric_limits<double>::max\(\)/DBL_MAX/g;
438438
$line =~ s/\bstd::numeric_limits<double>::lowest\(\)/-DBL_MAX/g;
439439
$line =~ s/\bstd::numeric_limits<double>::epsilon\(\)/DBL_EPSILON/g;
440+
$line =~ s/\bstd::numeric_limits<int>::max\(\)/INT_MAX/g;
441+
$line =~ s/\bstd::numeric_limits<int>::min\(\)/INT_MIN/g;
440442
return $line;
441443
}
442444

src/core/dxf/qgsdxfexport.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ void QgsDxfExport::writeGroup( int code, const QgsPoint &p )
444444
void QgsDxfExport::writeGroup( const QColor &color, int exactMatchCode, int rgbCode, int transparencyCode )
445445
{
446446
int minDistAt = -1;
447-
int minDist = INT_MAX;
447+
int minDist = std::numeric_limits<int>::max();
448448

449449
for ( int i = 1; i < static_cast< int >( sizeof( sDxfColors ) / sizeof( *sDxfColors ) ) && minDist > 0; ++i )
450450
{
@@ -3910,7 +3910,7 @@ QString QgsDxfExport::lineStyleFromSymbolLayer( const QgsSymbolLayer *symbolLaye
39103910
int QgsDxfExport::closestColorMatch( QRgb pixel )
39113911
{
39123912
int idx = 0;
3913-
int current_distance = INT_MAX;
3913+
int current_distance = std::numeric_limits<int>::max();
39143914
for ( int i = 1; i < static_cast< int >( sizeof( sDxfColors ) / sizeof( *sDxfColors ) ); ++i )
39153915
{
39163916
int dist = color_distance( pixel, i );

src/core/dxf/qgsdxfpaintdevice.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ int QgsDxfPaintDevice::metric( PaintDeviceMetric metric ) const
4646
case QPaintDevice::PdmHeightMM:
4747
return mDrawingSize.height();
4848
case QPaintDevice::PdmNumColors:
49-
return INT_MAX;
49+
return std::numeric_limits<int>::max();
5050
case QPaintDevice::PdmDepth:
5151
return 32;
5252
case QPaintDevice::PdmDpiX:

src/core/pal/problem.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
#include "priorityqueue.h"
4040
#include "internalexception.h"
4141
#include <cfloat>
42-
#include <limits> //for INT_MAX
42+
#include <limits> //for std::numeric_limits<int>::max()
4343

4444
#include "qgslabelingengine.h"
4545

@@ -347,7 +347,7 @@ void Problem::init_sol_falp()
347347
{
348348
if ( sol->s[i] == -1 )
349349
{
350-
nbOverlap = INT_MAX;
350+
nbOverlap = std::numeric_limits<int>::max();
351351
start_p = featStartId[i];
352352
for ( p = 0; p < featNbLp[i]; p++ )
353353
{

src/core/processing/qgsprocessingparameters.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ int QgsProcessingParameters::parameterAsInt( const QgsProcessingParameterDefinit
135135
if ( ok )
136136
{
137137
double round = std::round( dbl );
138-
if ( round > INT_MAX || round < -INT_MAX )
138+
if ( round > std::numeric_limits<int>::max() || round < -std::numeric_limits<int>::max() )
139139
{
140140
//double too large to fit in int
141141
return 0;

src/core/qgsfield.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ bool QgsField::convertCompatible( QVariant &v ) const
353353
}
354354

355355
double round = std::round( dbl );
356-
if ( round > INT_MAX || round < -INT_MAX )
356+
if ( round > std::numeric_limits<int>::max() || round < -std::numeric_limits<int>::max() )
357357
{
358358
//double too large to fit in int
359359
v = QVariant( d->type );

src/core/qgsstringstatisticalsummary.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ void QgsStringStatisticalSummary::reset()
4040
mCountMissing = 0;
4141
mMin.clear();
4242
mMax.clear();
43-
mMinLength = INT_MAX;
43+
mMinLength = std::numeric_limits<int>::max();
4444
mMaxLength = 0;
4545
mSumLengths = 0;
4646
mMeanLength = 0;

src/core/qgsvectorfilewriter.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2496,7 +2496,7 @@ QgsVectorFileWriter::WriterError QgsVectorFileWriter::prepareWriteAsVectorFormat
24962496
{
24972497
QVariant min = layer->minimumValue( i );
24982498
QVariant max = layer->maximumValue( i );
2499-
if ( std::max( std::llabs( min.toLongLong() ), std::llabs( max.toLongLong() ) ) < INT_MAX )
2499+
if ( std::max( std::llabs( min.toLongLong() ), std::llabs( max.toLongLong() ) ) < std::numeric_limits<int>::max() )
25002500
{
25012501
details.outputFields[i].setType( QVariant::Int );
25022502
}

src/gui/qgsgradientstopeditor.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -275,8 +275,8 @@ void QgsGradientStopEditor::mouseMoveEvent( QMouseEvent *e )
275275
int QgsGradientStopEditor::findClosestStop( int x, int threshold ) const
276276
{
277277
int closestStop = -1;
278-
int closestDiff = INT_MAX;
279-
int currentDiff = INT_MAX;
278+
int closestDiff = std::numeric_limits<int>::max();
279+
int currentDiff = std::numeric_limits<int>::max();
280280

281281
// check for matching stops first, so that they take precedence
282282
// otherwise it's impossible to select a stop which sits above the first/last stop, making

src/gui/raster/qgspalettedrendererwidget.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -704,7 +704,7 @@ bool QgsPalettedRendererModel::removeRows( int row, int count, const QModelIndex
704704
bool QgsPalettedRendererModel::insertRows( int row, int count, const QModelIndex & )
705705
{
706706
QgsPalettedRasterRenderer::ClassData::const_iterator cIt = mData.constBegin();
707-
int currentMaxValue = -INT_MAX;
707+
int currentMaxValue = -std::numeric_limits<int>::max();
708708
for ( ; cIt != mData.constEnd(); ++cIt )
709709
{
710710
int value = cIt->value;

src/plugins/grass/qgsgrassmoduleparam.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,8 @@ QgsGrassModuleOption::QgsGrassModuleOption( QgsGrassModule *module, QString key,
267267
, mValueType( String )
268268
, mOutputType( None )
269269
, mHaveLimits( false )
270-
, mMin( INT_MAX )
271-
, mMax( INT_MIN )
270+
, mMin( std::numeric_limits<int>::max() )
271+
, mMax( std::numeric_limits<int>::min() )
272272
, mIsOutput( false )
273273
, mUsesRegion( false )
274274
{

src/providers/grass/qgsgrassrasterprovider.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ QgsGrassRasterProvider::QgsGrassRasterProvider( QString const &uri )
114114
double myInternalNoDataValue;
115115
if ( mGrassDataType == CELL_TYPE )
116116
{
117-
myInternalNoDataValue = INT_MIN;
117+
myInternalNoDataValue = std::numeric_limits<int>::min();
118118
}
119119
else if ( mGrassDataType == DCELL_TYPE )
120120
{

src/providers/postgres/qgscolumntypethread.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ void QgsGeomColumnTypeThread::run()
8383

8484
if ( !layerProperty.geometryColName.isNull() &&
8585
( layerProperty.types.value( 0, QgsWkbTypes::Unknown ) == QgsWkbTypes::Unknown ||
86-
layerProperty.srids.value( 0, INT_MIN ) == INT_MIN ) )
86+
layerProperty.srids.value( 0, std::numeric_limits<int>::min() ) == std::numeric_limits<int>::min() ) )
8787
{
8888
if ( dontResolveType )
8989
{

src/providers/postgres/qgspgtablemodel.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ void QgsPgTableModel::addTableEntry( const QgsPostgresLayerProperty &layerProper
6060
{
6161
tip = tr( "Specify a geometry type in the '%1' column" ).arg( tr( "Data Type" ) );
6262
}
63-
else if ( wkbType != QgsWkbTypes::NoGeometry && srid == INT_MIN )
63+
else if ( wkbType != QgsWkbTypes::NoGeometry && srid == std::numeric_limits<int>::min() )
6464
{
6565
tip = tr( "Enter a SRID into the '%1' column" ).arg( tr( "SRID" ) );
6666
}
@@ -82,7 +82,7 @@ void QgsPgTableModel::addTableEntry( const QgsPostgresLayerProperty &layerProper
8282
QStandardItem *commentItem = new QStandardItem( layerProperty.tableComment );
8383
QStandardItem *geomItem = new QStandardItem( layerProperty.geometryColName );
8484
QStandardItem *sridItem = new QStandardItem( wkbType != QgsWkbTypes::NoGeometry ? QString::number( srid ) : QLatin1String( "" ) );
85-
sridItem->setEditable( wkbType != QgsWkbTypes::NoGeometry && srid == INT_MIN );
85+
sridItem->setEditable( wkbType != QgsWkbTypes::NoGeometry && srid == std::numeric_limits<int>::min() );
8686
if ( sridItem->isEditable() )
8787
{
8888
sridItem->setText( tr( "Enter…" ) );
@@ -264,7 +264,7 @@ bool QgsPgTableModel::setData( const QModelIndex &idx, const QVariant &value, in
264264
bool ok;
265265
int srid = idx.sibling( idx.row(), DbtmSrid ).data().toInt( &ok );
266266

267-
if ( !ok || srid == INT_MIN )
267+
if ( !ok || srid == std::numeric_limits<int>::min() )
268268
tip = tr( "Enter a SRID into the '%1' column" ).arg( tr( "SRID" ) );
269269
}
270270

src/providers/postgres/qgspostgresconn.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -540,11 +540,11 @@ bool QgsPostgresConn::getTableInfo( bool searchGeometryColumnsOnly, bool searchP
540540
bool isMaterializedView = relkind == QLatin1String( "m" );
541541
QString comment = result.PQgetvalue( idx, 7 );
542542

543-
int srid = ssrid.isEmpty() ? INT_MIN : ssrid.toInt();
543+
int srid = ssrid.isEmpty() ? std::numeric_limits<int>::min() : ssrid.toInt();
544544
if ( majorVersion() >= 2 && srid == 0 )
545545
{
546546
// 0 doesn't constraint => detect
547-
srid = INT_MIN;
547+
srid = std::numeric_limits<int>::min();
548548
}
549549

550550
#if 0
@@ -665,7 +665,7 @@ bool QgsPostgresConn::getTableInfo( bool searchGeometryColumnsOnly, bool searchP
665665
//QgsDebugMsg( QString( "%1.%2.%3: %4" ).arg( schemaName ).arg( tableName ).arg( column ).arg( relkind ) );
666666

667667
layerProperty.types = QList<QgsWkbTypes::Type>() << QgsWkbTypes::Unknown;
668-
layerProperty.srids = QList<int>() << INT_MIN;
668+
layerProperty.srids = QList<int>() << std::numeric_limits<int>::min();
669669
layerProperty.schemaName = schemaName;
670670
layerProperty.tableName = tableName;
671671
layerProperty.geometryColName = column;
@@ -754,7 +754,7 @@ bool QgsPostgresConn::getTableInfo( bool searchGeometryColumnsOnly, bool searchP
754754
//QgsDebugMsg( QString( "%1.%2: %3" ).arg( schema ).arg( table ).arg( relkind ) );
755755

756756
layerProperty.types = QList<QgsWkbTypes::Type>() << QgsWkbTypes::NoGeometry;
757-
layerProperty.srids = QList<int>() << INT_MIN;
757+
layerProperty.srids = QList<int>() << std::numeric_limits<int>::min();
758758
layerProperty.schemaName = schema;
759759
layerProperty.tableName = table;
760760
layerProperty.geometryColName = QString();
@@ -1486,8 +1486,8 @@ void QgsPostgresConn::retrieveLayerTypes( QgsPostgresLayerProperty &layerPropert
14861486

14871487
query += ',';
14881488

1489-
int srid = layerProperty.srids.value( 0, INT_MIN );
1490-
if ( srid == INT_MIN )
1489+
int srid = layerProperty.srids.value( 0, std::numeric_limits<int>::min() );
1490+
if ( srid == std::numeric_limits<int>::min() )
14911491
{
14921492
query += QStringLiteral( "%1(%2%3)" )
14931493
.arg( majorVersion() < 2 ? "srid" : "st_srid",

src/providers/postgres/qgspostgresdataitems.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ QVector<QgsDataItem *> QgsPGSchemaItem::createChildren()
555555

556556
if ( !layerProperty.geometryColName.isNull() &&
557557
( layerProperty.types.value( 0, QgsWkbTypes::Unknown ) == QgsWkbTypes::Unknown ||
558-
layerProperty.srids.value( 0, INT_MIN ) == INT_MIN ) )
558+
layerProperty.srids.value( 0, std::numeric_limits<int>::min() ) == std::numeric_limits<int>::min() ) )
559559
{
560560
if ( dontResolveType )
561561
{

src/server/services/wms/qgsmediancut.cpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,14 @@ namespace QgsWms
6767
return false;
6868
}
6969

70-
int rMin = INT_MAX;
71-
int gMin = INT_MAX;
72-
int bMin = INT_MAX;
73-
int aMin = INT_MAX;
74-
int rMax = INT_MIN;
75-
int gMax = INT_MIN;
76-
int bMax = INT_MIN;
77-
int aMax = INT_MIN;
70+
int rMin = std::numeric_limits<int>::max();
71+
int gMin = std::numeric_limits<int>::max();
72+
int bMin = std::numeric_limits<int>::max();
73+
int aMin = std::numeric_limits<int>::max();
74+
int rMax = std::numeric_limits<int>::min();
75+
int gMax = std::numeric_limits<int>::min();
76+
int bMax = std::numeric_limits<int>::min();
77+
int aMax = std::numeric_limits<int>::min();
7878

7979
int currentRed = 0;
8080
int currentGreen = 0;

tests/code_layout/test_banned_keywords.sh

+5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ HINTS[2]="Use the type-safe method std::numeric_limits<double>::min() instead (b
1717
KEYWORDS[3]="DBL_EPSILON"
1818
HINTS[3]="Use the type-safe method std::numeric_limits<double>::epsilon() instead"
1919

20+
KEYWORDS[4]="INT_MIN"
21+
HINTS[4]="Use the type-safe method std::numeric_limits<int>::min() instead"
22+
23+
KEYWORDS[5]="INT_MAX"
24+
HINTS[5]="Use the type-safe method std::numeric_limits<int>::max() instead"
2025

2126
RES=
2227
DIR=$(git rev-parse --show-toplevel)

0 commit comments

Comments
 (0)