Skip to content

Commit f812bbf

Browse files
committed
Fix to make sure index in 64bit to avoid integer overflow
1 parent 6f47559 commit f812bbf

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

src/Widgets/VolumeViewerWidget.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ void VolumeViewerWidget::setData(Dataset<Points> pointDataset)
3737
{
3838
case VolumeViewerPlugin::RendererBackend::OpenGL:
3939
{
40-
int numDimensions = pointDataset->getNumDimensions();
40+
std::uint64_t numDimensions = pointDataset->getNumDimensions();
4141
if (numDimensions != 3) {
4242
qDebug() << "WARNING: DIMENSIONS ARE NOT 3";
4343
return;
@@ -48,7 +48,7 @@ void VolumeViewerWidget::setData(Dataset<Points> pointDataset)
4848
QVector3D minCoord(std::numeric_limits<float>::max(), std::numeric_limits<float>::max(), std::numeric_limits<float>::max());
4949
QVector3D maxCoord(-std::numeric_limits<float>::max(), -std::numeric_limits<float>::max(), -std::numeric_limits<float>::max());
5050
_meanCoord = QVector3D(0, 0, 0);
51-
for (int i = 0; i < pointDataset->getNumPoints(); i++)
51+
for (std::uint64_t i = 0; i < pointDataset->getNumPoints(); i++)
5252
{
5353
float x = pointDataset->getValueAt(i * numDimensions + 0);
5454
float y = pointDataset->getValueAt(i * numDimensions + 1);
@@ -67,7 +67,7 @@ void VolumeViewerWidget::setData(Dataset<Points> pointDataset)
6767
_maxRange = std::max(range.x(), std::max(range.y(), range.z()));
6868

6969
// Rescale data
70-
for (int i = 0; i < pointDataset->getNumPoints(); i++)
70+
for (std::uint64_t i = 0; i < pointDataset->getNumPoints(); i++)
7171
{
7272
float x = pointDataset->getValueAt(i * numDimensions + 0);
7373
float y = pointDataset->getValueAt(i * numDimensions + 1);
@@ -132,12 +132,12 @@ void VolumeViewerWidget::requestSelection(const QVector3D& cursor, bool replaces
132132
std::vector<float> VolumeViewerWidget::getPointDistances(const QVector3D& cursor) const {
133133

134134
auto dataset = _plugin->getDataset();
135-
int numDimensions = dataset->getNumDimensions();
135+
std::uint64_t numDimensions = dataset->getNumDimensions();
136136

137137

138138
std::vector<float> result = std::vector<float>(points.size() / 3, 0.0f);
139139

140-
for (std::uint32_t localIndex = 0; localIndex < points.size() / numDimensions; localIndex++) {
140+
for (std::uint64_t localIndex = 0; localIndex < points.size() / numDimensions; localIndex++) {
141141

142142
result[localIndex] = std::sqrt(
143143
std::pow(cursor[0] - points[localIndex * numDimensions + 0], 2)

0 commit comments

Comments
 (0)