[BUG_FIXED] Fix crash bug on second view (startup) while session snapshot is enabled.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1228 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
e4ff453125
commit
e1a3fe91b9
@ -1337,13 +1337,13 @@ bool Notepad_plus::loadSession(Session & session, bool isSnapshotMode)
|
|||||||
NppParameters *pNppParam = NppParameters::getInstance();
|
NppParameters *pNppParam = NppParameters::getInstance();
|
||||||
bool allSessionFilesLoaded = true;
|
bool allSessionFilesLoaded = true;
|
||||||
BufferID lastOpened = BUFFER_INVALID;
|
BufferID lastOpened = BUFFER_INVALID;
|
||||||
size_t i = 0;
|
//size_t i = 0;
|
||||||
showView(MAIN_VIEW);
|
showView(MAIN_VIEW);
|
||||||
switchEditViewTo(MAIN_VIEW); //open files in main
|
switchEditViewTo(MAIN_VIEW); //open files in main
|
||||||
|
|
||||||
int mainIndex2Update = -1;
|
int mainIndex2Update = -1;
|
||||||
|
|
||||||
for ( ; i < session.nbMainFiles() ; )
|
for (size_t i = 0; i < session.nbMainFiles() ; )
|
||||||
{
|
{
|
||||||
const TCHAR *pFn = session._mainViewFiles[i]._fileName.c_str();
|
const TCHAR *pFn = session._mainViewFiles[i]._fileName.c_str();
|
||||||
|
|
||||||
@ -1433,14 +1433,14 @@ bool Notepad_plus::loadSession(Session & session, bool isSnapshotMode)
|
|||||||
if (mainIndex2Update != -1)
|
if (mainIndex2Update != -1)
|
||||||
_mainEditView.syncFoldStateWith(session._mainViewFiles[mainIndex2Update]._foldStates);
|
_mainEditView.syncFoldStateWith(session._mainViewFiles[mainIndex2Update]._foldStates);
|
||||||
|
|
||||||
size_t k = 0;
|
|
||||||
showView(SUB_VIEW);
|
showView(SUB_VIEW);
|
||||||
switchEditViewTo(SUB_VIEW); //open files in sub
|
switchEditViewTo(SUB_VIEW); //open files in sub
|
||||||
int subIndex2Update = -1;
|
int subIndex2Update = -1;
|
||||||
|
|
||||||
for ( ; k < session.nbSubFiles() ; )
|
for (size_t k = 0 ; k < session.nbSubFiles() ; )
|
||||||
{
|
{
|
||||||
const TCHAR *pFn = session._subViewFiles[i]._fileName.c_str();
|
const TCHAR *pFn = session._subViewFiles[k]._fileName.c_str();
|
||||||
|
|
||||||
if (isFileSession(pFn)) {
|
if (isFileSession(pFn)) {
|
||||||
vector<sessionFileInfo>::iterator posIt = session._subViewFiles.begin() + k;
|
vector<sessionFileInfo>::iterator posIt = session._subViewFiles.begin() + k;
|
||||||
@ -1456,19 +1456,19 @@ bool Notepad_plus::loadSession(Session & session, bool isSnapshotMode)
|
|||||||
}
|
}
|
||||||
if (PathFileExists(pFn))
|
if (PathFileExists(pFn))
|
||||||
{
|
{
|
||||||
if (isSnapshotMode && session._subViewFiles[i]._backupFilePath != TEXT(""))
|
if (isSnapshotMode && session._subViewFiles[k]._backupFilePath != TEXT(""))
|
||||||
lastOpened = doOpen(pFn, false, false, session._subViewFiles[i]._encoding, session._subViewFiles[i]._backupFilePath.c_str(), session._subViewFiles[i]._originalFileLastModifTimestamp);
|
lastOpened = doOpen(pFn, false, false, session._subViewFiles[k]._encoding, session._subViewFiles[k]._backupFilePath.c_str(), session._subViewFiles[k]._originalFileLastModifTimestamp);
|
||||||
else
|
else
|
||||||
lastOpened = doOpen(pFn, false, false, session._subViewFiles[i]._encoding);
|
lastOpened = doOpen(pFn, false, false, session._subViewFiles[k]._encoding);
|
||||||
|
|
||||||
//check if already open in main. If so, clone
|
//check if already open in main. If so, clone
|
||||||
if (_mainDocTab.getIndexByBuffer(lastOpened) != -1) {
|
if (_mainDocTab.getIndexByBuffer(lastOpened) != -1) {
|
||||||
loadBufferIntoView(lastOpened, SUB_VIEW);
|
loadBufferIntoView(lastOpened, SUB_VIEW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (isSnapshotMode && PathFileExists(session._subViewFiles[i]._backupFilePath.c_str()))
|
else if (isSnapshotMode && PathFileExists(session._subViewFiles[k]._backupFilePath.c_str()))
|
||||||
{
|
{
|
||||||
lastOpened = doOpen(pFn, false, false, session._subViewFiles[i]._encoding, session._subViewFiles[i]._backupFilePath.c_str(), session._subViewFiles[i]._originalFileLastModifTimestamp);
|
lastOpened = doOpen(pFn, false, false, session._subViewFiles[k]._encoding, session._subViewFiles[k]._backupFilePath.c_str(), session._subViewFiles[k]._originalFileLastModifTimestamp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1516,7 +1516,7 @@ bool Notepad_plus::loadSession(Session & session, bool isSnapshotMode)
|
|||||||
buf->setLangType(typeToSet, pLn);
|
buf->setLangType(typeToSet, pLn);
|
||||||
buf->setEncoding(session._subViewFiles[k]._encoding);
|
buf->setEncoding(session._subViewFiles[k]._encoding);
|
||||||
|
|
||||||
if (isSnapshotMode && session._subViewFiles[i]._backupFilePath != TEXT("") && PathFileExists(session._subViewFiles[i]._backupFilePath.c_str()))
|
if (isSnapshotMode && session._subViewFiles[k]._backupFilePath != TEXT("") && PathFileExists(session._subViewFiles[k]._backupFilePath.c_str()))
|
||||||
buf->setDirty(true);
|
buf->setDirty(true);
|
||||||
|
|
||||||
//Force in the document so we can add the markers
|
//Force in the document so we can add the markers
|
||||||
|
Loading…
Reference in New Issue
Block a user