diff --git a/src/obj/NiSkinPartition.cpp b/src/obj/NiSkinPartition.cpp index 9f188a4a336da3ef5dd6e97c24221f99d69ed221..b2cfb41efe27f31c5ca452750f3e5c07ddef5fb8 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 2ca9bd019de3590f92984e0160907099bce4f876..27e8d095a99b9e9267ba7060f0873a299daa774a 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)); }