From: <pa...@us...> - 2008-10-23 03:54:38
|
Revision: 921 http://opde.svn.sourceforge.net/opde/?rev=921&view=rev Author: patryn Date: 2008-10-23 03:54:37 +0000 (Thu, 23 Oct 2008) Log Message: ----------- Reduced the calls to .size() at it is a slow function. Modified Paths: -------------- trunk/src/base/file/File.cpp trunk/src/main/DTypeScriptCompiler.cpp trunk/src/scenemanager/DarkConvexPolygon.cpp trunk/src/scenemanager/DarkPortal.cpp trunk/src/services/object/ObjectService.cpp trunk/src/services/worldrep/LightmapAtlas.cpp Modified: trunk/src/base/file/File.cpp =================================================================== --- trunk/src/base/file/File.cpp 2008-10-22 11:24:08 UTC (rev 920) +++ trunk/src/base/file/File.cpp 2008-10-23 03:54:37 UTC (rev 921) @@ -482,6 +482,7 @@ std::pair<size_t, int> pgp = decomposePos(actp); + unsigned int PagesSize = mPages.size(); while (resSize > 0) { // read from one page in one cycle pass file_size_t read = 0; @@ -489,10 +490,10 @@ uint toEnd; - if (pgp.first >= mPages.size()) { // last page. or error + if (pgp.first >= PagesSize) { // last page. or error toEnd = (mSize % MEMORY_FILE_BUF_LEN) - pgp.second; - if (toEnd == 0 || pgp.first >= mPages.size()) { + if (toEnd == 0 || pgp.first >= PagesSize) { // if this occurs, I've read the bytes I could // I also should set the important member vars prior to exception throw mEof = true; @@ -544,10 +545,11 @@ // actual position in the source buffer std::pair<size_t, int> pgp = decomposePos(actp); + unsigned int PagesSize = mPages.size(); while (resSize > 0) { file_size_t written = 0; - if (pgp.first >= mPages.size()) { // I've finished the already allocated pages + if (pgp.first >= PagesSize) { // I've finished the already allocated pages char *nbuf = new char[MEMORY_FILE_BUF_LEN]; if (nbuf == NULL) // this is quite fatal. something like out of disk space Modified: trunk/src/main/DTypeScriptCompiler.cpp =================================================================== --- trunk/src/main/DTypeScriptCompiler.cpp 2008-10-22 11:24:08 UTC (rev 920) +++ trunk/src/main/DTypeScriptCompiler.cpp 2008-10-23 03:54:37 UTC (rev 921) @@ -217,7 +217,7 @@ DTypeScriptCompiler::CompileState DTypeScriptCompiler::popState() { CompileState old = mCurrentState; - if (mStateStack.size() > 0) { + if (!mStateStack.empty()) { mCurrentState = mStateStack.top(); mStateStack.pop(); Modified: trunk/src/scenemanager/DarkConvexPolygon.cpp =================================================================== --- trunk/src/scenemanager/DarkConvexPolygon.cpp 2008-10-22 11:24:08 UTC (rev 920) +++ trunk/src/scenemanager/DarkConvexPolygon.cpp 2008-10-23 03:54:37 UTC (rev 921) @@ -52,9 +52,10 @@ ConvexPolygon::ConvexPolygon(const ConvexPolygon& src) { const PolygonPoints& pnts = src.getPoints(); - mPoints.reserve(pnts.size()); + unsigned int size = pnts.size(); + mPoints.reserve(size); - for (unsigned int x = 0; x < pnts.size(); x++) + for (unsigned int x = 0; x < size; x++) mPoints.push_back(pnts.at(x)); this->mPlane = src.getPlane(); @@ -140,7 +141,7 @@ if (negative == 0) { delete[] sides; - return mPoints.size(); // all the vertices were inside + return pointcount; // all the vertices were inside } didClip = true; @@ -261,8 +262,9 @@ Vector3 ip = ray.getPoint(intersection.second); Vector3 origin = ray.getOrigin(); - for (unsigned int idx = 0; idx < mPoints.size(); idx++) { - int iv2 = (idx + 1) % mPoints.size(); + unsigned int pointcount = mPoints.size(); + for (unsigned int idx = 0; idx < pointcount; idx++) { + int iv2 = (idx + 1) % pointcount; Vector3 v1 = mPoints[idx]; Vector3 v2 = mPoints[iv2]; @@ -288,8 +290,9 @@ // intersection circle radius Real irad = radius*radius - distance*distance; - for (unsigned int idx = 0; idx < mPoints.size(); idx++) { - int iv2 = (idx + 1) % mPoints.size(); + unsigned int pointcount = mPoints.size(); + for (unsigned int idx = 0; idx < pointcount; idx++) { + int iv2 = (idx + 1) % pointcount; Vector3 v1 = mPoints[idx]; Vector3 v2 = mPoints[iv2]; Modified: trunk/src/scenemanager/DarkPortal.cpp =================================================================== --- trunk/src/scenemanager/DarkPortal.cpp 2008-10-22 11:24:08 UTC (rev 920) +++ trunk/src/scenemanager/DarkPortal.cpp 2008-10-23 03:54:37 UTC (rev 921) @@ -148,25 +148,27 @@ // --------------------------------------------------------------------------------- void Portal::refreshBoundingVolume() { - if (mPoints.size() == 0) { + + unsigned int pointcount = mPoints.size(); + if (pointcount == 0) { mCenter = Vector3(0,0,0); mRadius = -1; return; } // first get the center. - Vector3 center(0,0,0); + Vector3 center(0,0,0); - for (unsigned int x = 0; x < mPoints.size(); x++) + for (unsigned int x = 0; x < pointcount; x++) center += mPoints[x]; - center /= mPoints.size(); + center /= pointcount; mCenter = center; // now the maximal radius float radius = 0; - for (unsigned int x = 0; x < mPoints.size(); x++) { + for (unsigned int x = 0; x < pointcount; x++) { Vector3 vdist = mPoints[x] - center; float len = vdist.squaredLength(); Modified: trunk/src/services/object/ObjectService.cpp =================================================================== --- trunk/src/services/object/ObjectService.cpp 2008-10-22 11:24:08 UTC (rev 920) +++ trunk/src/services/object/ObjectService.cpp 2008-10-23 03:54:37 UTC (rev 921) @@ -568,7 +568,7 @@ // first look into the stack of free id's // TODO: Grow all the related structures as well! if (archetype) { - if (mFreeArchetypeIDs.size() > 0) { + if (!mFreeArchetypeIDs.empty()) { int id = mFreeArchetypeIDs.top(); mFreeArchetypeIDs.pop(); @@ -583,7 +583,7 @@ return idx; } } else { - if (mFreeConcreteIDs.size() > 0) { + if (!mFreeConcreteIDs.empty()) { int id = mFreeConcreteIDs.top(); mFreeConcreteIDs.pop(); Modified: trunk/src/services/worldrep/LightmapAtlas.cpp =================================================================== --- trunk/src/services/worldrep/LightmapAtlas.cpp 2008-10-22 11:24:08 UTC (rev 920) +++ trunk/src/services/worldrep/LightmapAtlas.cpp 2008-10-23 03:54:37 UTC (rev 921) @@ -259,7 +259,7 @@ } bool LightAtlasList::placeLightMap(LightMap* lmap) { - if (mList.size() == 0) + if (mList.empty()) mList.push_back(new LightAtlas(0)); int last = mList.size(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |