diff options
author | Shauren <none@none> | 2010-06-15 17:08:04 +0200 |
---|---|---|
committer | Shauren <none@none> | 2010-06-15 17:08:04 +0200 |
commit | ebb07858170c7552439ce0afd9395d93b79e2eb8 (patch) | |
tree | 752c44cf277578cb15eada4b0a7346e6004aecf7 /src/server/collision/Maps/MapTree.cpp | |
parent | 2a544c94b39238a353b8ec896936c7a6f00b53f8 (diff) |
Commit from Lynx3d: Add assert to values that can cause nasty freeze, but should never occur with
valid input.
--HG--
branch : trunk
Diffstat (limited to 'src/server/collision/Maps/MapTree.cpp')
-rw-r--r-- | src/server/collision/Maps/MapTree.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/collision/Maps/MapTree.cpp b/src/server/collision/Maps/MapTree.cpp index 8c77ee109f3..af4073fcc8c 100644 --- a/src/server/collision/Maps/MapTree.cpp +++ b/src/server/collision/Maps/MapTree.cpp @@ -16,6 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "Errors.h" #include "MapTree.h" #include "ModelInstance.h" #include "VMapManager2.h" @@ -24,6 +25,7 @@ #include <string> #include <sstream> #include <iomanip> +#include <limits> using G3D::Vector3; @@ -146,6 +148,8 @@ namespace VMAP { bool result = true; float maxDist = (pos2 - pos1).magnitude(); + // valid map coords should *never ever* produce float overflow, but this would produce NaNs too + ASSERT(maxDist < std::numeric_limits<float>::max()); // prevent NaN values which can cause BIH intersection to enter infinite loop if (maxDist < 1e-10f) return true; @@ -168,6 +172,8 @@ namespace VMAP { bool result=false; float maxDist = (pPos2 - pPos1).magnitude(); + // valid map coords should *never ever* produce float overflow, but this would produce NaNs too + ASSERT(maxDist < std::numeric_limits<float>::max()); // prevent NaN values which can cause BIH intersection to enter infinite loop if (maxDist < 1e-10f) { |