X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferList.cpp;h=0b76f13b87308dd8dde5435e7bed9b9e7d28d133;hb=ee14363e0ba9f9c5433509816a9d75b695b859bd;hp=ff99a090f35ea08ad398bbb8eabaf1ca92ef9238;hpb=e8ffb0c97aa7c5a27dd3fcfc79a4ce13d8701762;p=lyx.git diff --git a/src/BufferList.cpp b/src/BufferList.cpp index ff99a090f3..0b76f13b87 100644 --- a/src/BufferList.cpp +++ b/src/BufferList.cpp @@ -32,10 +32,8 @@ #include "support/Package.h" #include "support/lassert.h" -#include "support/bind.h" #include -#include #include #include @@ -130,9 +128,9 @@ Buffer * BufferList::newBuffer(string const & s) Buffer * BufferList::createNewBuffer(string const & s) { - auto_ptr tmpbuf; + unique_ptr tmpbuf; try { - tmpbuf.reset(new Buffer(s)); + tmpbuf = make_unique(s); } catch (ExceptionMessage const & message) { if (message.type_ == ErrorException) { Alert::error(message.title_, message.details_); @@ -277,55 +275,34 @@ bool BufferList::isOthersChild(Buffer * parent, Buffer * child) Buffer const * parent_ = child->parent(); if (parent_ && parent_ != parent) return true; - - BufferStorage::iterator it = bstore.begin(); - BufferStorage::iterator end = bstore.end(); - for (; it != end; ++it) { - Buffer * buf = *it; + + for(Buffer * buf : bstore) if (buf != parent && buf->isChild(child)) return true; - } return false; } -namespace { - -struct equivalent_to : public binary_function -{ - bool operator()(FileName const & x, FileName const & y) const - { return equivalent(x, y); } -}; - -} - - Buffer * BufferList::getBuffer(support::FileName const & fname, bool internal) const { // 1) cheap test, using string comparison of file names - BufferStorage::const_iterator it = find_if(bstore.begin(), bstore.end(), - lyx::bind(equal_to(), lyx::bind(&Buffer::fileName, _1), fname)); - if (it != bstore.end()) - return *it; + for (Buffer * b : bstore) + if (b->fileName() == fname) + return b; // 2) possibly expensive test, using equivalence test of file names - it = find_if(bstore.begin(), bstore.end(), - lyx::bind(equivalent_to(), lyx::bind(&Buffer::fileName, _1), fname)); - if (it != bstore.end()) - return *it; - + for (Buffer * b : bstore) + if (equivalent(b->fileName(), fname)) + return b; if (internal) { // 1) cheap test, using string comparison of file names - BufferStorage::const_iterator it = find_if(binternal.begin(), binternal.end(), - lyx::bind(equal_to(), lyx::bind(&Buffer::fileName, _1), fname)); - if (it != binternal.end()) - return *it; + for (Buffer * b : binternal) + if (b->fileName() == fname) + return b; // 2) possibly expensive test, using equivalence test of file names - it = find_if(binternal.begin(), binternal.end(), - lyx::bind(equivalent_to(), lyx::bind(&Buffer::fileName, _1), fname)); - if (it != binternal.end()) - return *it; + for (Buffer * b : binternal) + if (equivalent(b->fileName(), fname)) + return b; } - return 0; }