Thread: [Winmerge-svn] SF.net SVN: winmerge:[6892] trunk/Src/DiffList.cpp
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <ki...@us...> - 2009-07-02 17:30:25
|
Revision: 6892 http://winmerge.svn.sourceforge.net/winmerge/?rev=6892&view=rev Author: kimmov Date: 2009-07-02 17:30:18 +0000 (Thu, 02 Jul 2009) Log Message: ----------- Small optimizations to DiffList. Modified Paths: -------------- trunk/Src/DiffList.cpp Modified: trunk/Src/DiffList.cpp =================================================================== --- trunk/Src/DiffList.cpp 2009-07-02 13:41:14 UTC (rev 6891) +++ trunk/Src/DiffList.cpp 2009-07-02 17:30:18 UTC (rev 6892) @@ -49,15 +49,8 @@ */ void DiffMap::InitDiffMap(int nlines) { - m_map.resize(nlines); - // sentry value so we can check later that we set them all - std::vector<int>::iterator iter = m_map.begin(); - while (iter != m_map.end()) - { - *iter = BAD_MAP_ENTRY; - iter++; - } + m_map.assign(nlines, BAD_MAP_ENTRY); } @@ -314,7 +307,8 @@ if (nDiff == -1) { bInDiff = false; - for (int i = (int) m_diffs.size() - 1; i >= 0 ; i--) + const int size = (int) m_diffs.size(); + for (int i = (int) size - 1; i >= 0 ; i--) { if ((int)DiffRangeAt(i)->dend0 <= nLine) { @@ -378,8 +372,9 @@ int DiffList::PrevSignificantDiffFromLine(UINT nLine) const { int nDiff = -1; + const int size = (int) m_diffs.size(); - for (int i = (int) m_diffs.size() - 1; i >= 0 ; i--) + for (int i = size - 1; i >= 0 ; i--) { const DIFFRANGE * dfi = DiffRangeAt(i); if (dfi->op != OP_TRIVIAL && dfi->dend0 <= nLine) @@ -421,8 +416,10 @@ m_firstSignificant = -1; m_lastSignificant = -1; int prev = -1; + const int size = (int) m_diffs.size(); + // must be called after diff list is entirely populated - for (int i = 0; i < (int) m_diffs.size(); ++i) + for (int i = 0; i < size; ++i) { if (m_diffs[i].diffrange.op == OP_TRIVIAL) { @@ -486,7 +483,8 @@ */ const DIFFRANGE * DiffList::FirstSignificantDiffRange() const { - if (m_firstSignificant == -1) return NULL; + if (m_firstSignificant == -1) + return NULL; return DiffRangeAt(m_firstSignificant); } @@ -496,7 +494,8 @@ */ const DIFFRANGE * DiffList::LastSignificantDiffRange() const { - if (m_lastSignificant == -1) return NULL; + if (m_lastSignificant == -1) + return NULL; return DiffRangeAt(m_lastSignificant); } @@ -506,7 +505,8 @@ void DiffList::Swap() { vector<DiffRangeInfo>::iterator iter = m_diffs.begin(); - while (iter != m_diffs.end()) + vector<DiffRangeInfo>::const_iterator iterEnd = m_diffs.end(); + while (iter != iterEnd) { (*iter).diffrange.swap_sides(); ++iter; @@ -522,7 +522,7 @@ { nLeftLines = 0; nRightLines = 0; - int nDiffCount = GetSize(); + const int nDiffCount = GetSize(); for (int nDiff = 0; nDiff < nDiffCount; ++nDiff) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2010-01-14 21:14:41
|
Revision: 7105 http://winmerge.svn.sourceforge.net/winmerge/?rev=7105&view=rev Author: kimmov Date: 2010-01-14 21:14:22 +0000 (Thu, 14 Jan 2010) Log Message: ----------- PATCH: [ 2931558 ] some smal cleanups Difflist7097.patch Submitted by Matthias Mayer Modified Paths: -------------- trunk/Src/DiffList.cpp Modified: trunk/Src/DiffList.cpp =================================================================== --- trunk/Src/DiffList.cpp 2010-01-14 11:19:08 UTC (rev 7104) +++ trunk/Src/DiffList.cpp 2010-01-14 21:14:22 UTC (rev 7105) @@ -206,7 +206,7 @@ { if (nDiff < (int) m_diffs.size()) { - m_diffs[nDiff] = di; + m_diffs[nDiff].diffrange = di; return true; } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |