From eed11d5d74cb5baa14feb771362f4c4bc4a97143 Mon Sep 17 00:00:00 2001 From: Amorilia <amorilia@users.sourceforge.net> Date: Sat, 17 Sep 2011 09:30:38 +0100 Subject: [PATCH] Simpler solution for range error with skin partition number. --- src/obj/NiSkinPartition.cpp | 5 +---- test/skinpart_test.cpp | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/obj/NiSkinPartition.cpp b/src/obj/NiSkinPartition.cpp index 9f188a4a..b2cfb41e 100644 --- a/src/obj/NiSkinPartition.cpp +++ b/src/obj/NiSkinPartition.cpp @@ -642,10 +642,7 @@ void NiSkinPartition::SetTriangles( int partition, const vector<Triangle> & in ) if ( in.size() > 65535 || in.size() < 0 ) { throw runtime_error("Invalid Triangle Count: must be between 0 and 65535."); } - if ( partition < 0 || partition >= numSkinPartitionBlocks) { - throw runtime_error("Invalid partition number."); - }; - SkinPartition& part = skinPartitionBlocks[partition]; + SkinPartition& part = skinPartitionBlocks.at(partition); // at throws, [] does not part.triangles = in; part.hasFaces = (in.size() > 0) ? true : (part.strips.size() != 0); part.numTriangles = (unsigned short)(in.size()); diff --git a/test/skinpart_test.cpp b/test/skinpart_test.cpp index 2ca9bd01..27e8d095 100644 --- a/test/skinpart_test.cpp +++ b/test/skinpart_test.cpp @@ -105,7 +105,7 @@ BOOST_AUTO_TEST_CASE(skinpart_triangles_partnum_test) verts.push_back(Vector3(0, 1, 0)); verts.push_back(Vector3(0, 0, 1)); tris.push_back(Triangle(0, 1, 2)); - BOOST_CHECK_THROW(skinpart->SetTriangles(5, tris), std::runtime_error); + BOOST_CHECK_THROW(skinpart->SetTriangles(5, tris), std::out_of_range); BOOST_CHECK_NO_THROW(skinpart->SetTriangles(0, tris)); } -- GitLab