Fix crash problem because use vector::end wrong.
Signed-off-by: Frank Li <lznuaa@gmail.com>
if(count>0)\r
num.Format(_T("-n%d"),count);\r
\r
- cmd.Format(_T("git.exe log %s --left-right --boundary -C --numstat --raw --pretty=format:\""),\r
+ cmd.Format(_T("git.exe log %s -C --numstat --raw --pretty=format:\""),\r
num);\r
BuildOutputFormat(log);\r
cmd += log;\r
break;\r
case LOG_REV_COMMIT_HASH:\r
this->m_CommitHash = text.Right(40);\r
- this->m_Mark=text[0];\r
+ if(text.GetLength()>40)\r
+ {\r
+ this->m_Mark=text[0];\r
+ }\r
break;\r
case LOG_REV_COMMIT_PARENT:\r
while(text.GetLength()>0)\r
{\r
//GitRev rev;\r
CString onelog;\r
+ TCHAR oldmark=this->m_Mark;\r
+ \r
git->GetLog(onelog,m_CommitHash,1);\r
CString oldhash=m_CommitHash;\r
ParserFromLog(onelog);\r
\r
//ASSERT(oldhash==m_CommitHash);\r
+ if(oldmark!=0)\r
+ this->m_Mark=oldmark; //parser full log will cause old mark overwrited. \r
+ //So we need keep old bound mark.\r
\r
InterlockedExchange(&m_IsUpdateing,FALSE);\r
InterlockedExchange(&m_IsFull,TRUE);\r
lns.changeActiveLane(sha); // uses previous isBoundary state
lns.setBoundary(c.IsBoundary()); // update must be here
+ TRACE(_T("%s %d"),c.m_CommitHash,c.IsBoundary());
if (isFork)
lns.setFork(sha);
\r
// redraw the views\r
// InterlockedExchange(&m_bNoDispUpdates, FALSE);\r
+#if 0\r
if (m_currentChangedArray)\r
{\r
m_ChangedFileListCtrl.SetItemCountEx(m_currentChangedArray->GetCount());\r
m_ChangedFileListCtrl.SetItemCountEx(0);\r
m_ChangedFileListCtrl.Invalidate();\r
}\r
+#endif\r
CAppUtils::ResizeAllListCtrlCols(&m_ChangedFileListCtrl);\r
// sort according to the settings\r
if (m_nSortColumnPathList > 0)\r
if (!boundary && IS_NODE(t))
t = ACTIVE; // boundary will be reset by changeActiveLane()
}
- while (*typeVec.end() == EMPTY) {
+ while (typeVec.back() == EMPTY) {
typeVec.pop_back();
nextShaVec.pop_back();
}