From 41b01dbaed4dbf181ae12fa6534a84f916cf9332 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 25 Jun 2014 13:00:17 -0700 Subject: [PATCH 1/2] Fix warning and simplify encodeRandomOrder. --- libraries/metavoxels/src/MetavoxelData.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/metavoxels/src/MetavoxelData.cpp b/libraries/metavoxels/src/MetavoxelData.cpp index 3e70e0f09b..2d61ede796 100644 --- a/libraries/metavoxels/src/MetavoxelData.cpp +++ b/libraries/metavoxels/src/MetavoxelData.cpp @@ -1094,14 +1094,14 @@ const int ORDER_ELEMENT_MASK = (1 << ORDER_ELEMENT_BITS) - 1; int MetavoxelVisitor::encodeRandomOrder() { // see http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_.22inside-out.22_algorithm - int order; + int order = 0; int randomValues = rand(); for (int i = 0, iShift = 0; i < MetavoxelNode::CHILD_COUNT; i++, iShift += ORDER_ELEMENT_BITS) { int j = (randomValues >> iShift) % (i + 1); int jShift = j * ORDER_ELEMENT_BITS; if (j != i) { int jValue = (order >> jShift) & ORDER_ELEMENT_MASK; - order = (order & ~(ORDER_ELEMENT_MASK << iShift)) | (jValue << iShift); + order |= (jValue << iShift); } order = (order & ~(ORDER_ELEMENT_MASK << jShift)) | (i << jShift); } From 6480c678d2b9f0485fdf0d693c63f330cfbd6393 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 25 Jun 2014 13:46:13 -0700 Subject: [PATCH 2/2] Disable strict aliasing for safe type punning, fix potentially uninitialized variable warning. --- CMakeLists.txt | 2 +- interface/src/ui/MetavoxelEditor.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a399e11168..b7fa55d4a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ if (WIN32) elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic") #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fno-strict-aliasing") endif(WIN32) if (NOT QT_CMAKE_PREFIX_PATH) diff --git a/interface/src/ui/MetavoxelEditor.cpp b/interface/src/ui/MetavoxelEditor.cpp index a42c84470b..c1deb20111 100644 --- a/interface/src/ui/MetavoxelEditor.cpp +++ b/interface/src/ui/MetavoxelEditor.cpp @@ -771,7 +771,7 @@ int VoxelizationVisitor::visit(MetavoxelInfo& info) { } return DEFAULT_ORDER; } - QRgb closestColor; + QRgb closestColor = QRgb(); float closestDistance = FLT_MAX; for (unsigned int i = 0; i < sizeof(DIRECTION_ROTATIONS) / sizeof(DIRECTION_ROTATIONS[0]); i++) { glm::vec3 rotated = DIRECTION_ROTATIONS[i] * center;