X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferList.cpp;h=c253282b795c029ea244769362d4fee5d9e6ca5c;hb=d1858b89d0828c3fe8f4e898f609aaed93333d33;hp=f756384bf455a4f9aab2b9b28b50aab3d38f2258;hpb=02c73cd7213a22d290dd18c127bf2350fd5a8dae;p=lyx.git diff --git a/src/BufferList.cpp b/src/BufferList.cpp index f756384bf4..c253282b79 100644 --- a/src/BufferList.cpp +++ b/src/BufferList.cpp @@ -92,13 +92,15 @@ BufferList::const_iterator BufferList::end() const void BufferList::release(Buffer * buf) { - LASSERT(buf, /**/); + // We may leak here, but we probably do not need to + // shut down. + LASSERT(buf, return); BufferStorage::iterator const it = find(bstore.begin(), bstore.end(), buf); if (it != bstore.end()) { Buffer * tmp = (*it); - LASSERT(tmp, /**/); bstore.erase(it); + LASSERT(tmp, return); delete tmp; } } @@ -152,10 +154,9 @@ void BufferList::closeAll() } -FileNameList const & BufferList::fileNames() const +FileNameList BufferList::fileNames() const { - static FileNameList nvec; - nvec.clear(); + FileNameList nvec; BufferStorage::const_iterator it = bstore.begin(); BufferStorage::const_iterator end = bstore.end(); for (; it != end; ++it) { @@ -192,13 +193,14 @@ Buffer * BufferList::getBuffer(unsigned int choice) Buffer * BufferList::next(Buffer const * buf) const { - LASSERT(buf, /**/); + // Something is wrong, but we can probably survive it. + LASSERT(buf, return 0); if (bstore.empty()) return 0; BufferStorage::const_iterator it = find(bstore.begin(), bstore.end(), buf); - LASSERT(it != bstore.end(), /**/); + LASSERT(it != bstore.end(), return 0); ++it; Buffer * nextbuf = (it == bstore.end()) ? bstore.front() : *it; return nextbuf; @@ -207,13 +209,14 @@ Buffer * BufferList::next(Buffer const * buf) const Buffer * BufferList::previous(Buffer const * buf) const { - LASSERT(buf, /**/); + // Something is wrong, but we can probably survive it. + LASSERT(buf, return 0); if (bstore.empty()) return 0; BufferStorage::const_iterator it = find(bstore.begin(), bstore.end(), buf); - LASSERT(it != bstore.end(), /**/); + LASSERT(it != bstore.end(), return 0); Buffer * previousbuf = (it == bstore.begin()) ? bstore.back() : *(it - 1); return previousbuf; @@ -265,11 +268,13 @@ bool BufferList::exists(FileName const & fname) const namespace { + struct equivalent_to : public binary_function { bool operator()(FileName const & x, FileName const & y) const { return equivalent(x, y); } }; + } @@ -341,7 +346,7 @@ void BufferList::recordCurrentAuthor(Author const & author) int BufferList::bufferNum(FileName const & fname) const { - FileNameList const & buffers = fileNames(); + FileNameList const buffers(fileNames()); FileNameList::const_iterator cit = find(buffers.begin(), buffers.end(), fname); if (cit == buffers.end())