mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
Make BufferList::fileNames() threadsafe
Using a static variable here was premature optimization: fileNames() is only called from GuiRef (directly or indirectly), and since this is a dialog the copying of a FileNameList is not noticeable at all.
This commit is contained in:
parent
e7c41b5f56
commit
922d48da27
@ -154,11 +154,9 @@ void BufferList::closeAll()
|
||||
}
|
||||
|
||||
|
||||
FileNameList const & BufferList::fileNames() const
|
||||
FileNameList BufferList::fileNames() const
|
||||
{
|
||||
// FIXME THREAD
|
||||
static FileNameList nvec;
|
||||
nvec.clear();
|
||||
FileNameList nvec;
|
||||
BufferStorage::const_iterator it = bstore.begin();
|
||||
BufferStorage::const_iterator end = bstore.end();
|
||||
for (; it != end; ++it) {
|
||||
@ -348,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())
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
void closeAll();
|
||||
|
||||
/// returns a vector with all the buffers filenames
|
||||
support::FileNameList const & fileNames() const;
|
||||
support::FileNameList fileNames() const;
|
||||
|
||||
/// return true if no buffers loaded
|
||||
bool empty() const;
|
||||
|
@ -251,7 +251,7 @@ void GuiRef::updateContents()
|
||||
|
||||
// insert buffer list
|
||||
bufferCO->clear();
|
||||
FileNameList const & buffers = theBufferList().fileNames();
|
||||
FileNameList const buffers(theBufferList().fileNames());
|
||||
for (FileNameList::const_iterator it = buffers.begin();
|
||||
it != buffers.end(); ++it) {
|
||||
bufferCO->addItem(toqstr(makeDisplayPath(it->absFileName())));
|
||||
@ -455,7 +455,8 @@ void GuiRef::updateRefs()
|
||||
refs_.clear();
|
||||
int const the_buffer = bufferCO->currentIndex();
|
||||
if (the_buffer != -1) {
|
||||
FileName const & name = theBufferList().fileNames()[the_buffer];
|
||||
FileNameList const names(theBufferList().fileNames());
|
||||
FileName const & name = names[the_buffer];
|
||||
Buffer const * buf = theBufferList().getBuffer(name);
|
||||
buf->getLabelList(refs_);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user