mirror of git://gcc.gnu.org/git/gcc.git
* src/filesystem/path.cc (path::compare): Do not copy strings.
From-SVN: r222704
This commit is contained in:
parent
bf53e6a9dd
commit
4ad376273d
|
|
@ -1,5 +1,7 @@
|
||||||
2015-05-01 Jonathan Wakely <jwakely@redhat.com>
|
2015-05-01 Jonathan Wakely <jwakely@redhat.com>
|
||||||
|
|
||||||
|
* src/filesystem/path.cc (path::compare): Do not copy strings.
|
||||||
|
|
||||||
* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable when <dirent.h>
|
* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable when <dirent.h>
|
||||||
is not available.
|
is not available.
|
||||||
(GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmodat.
|
(GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmodat.
|
||||||
|
|
|
||||||
|
|
@ -107,17 +107,23 @@ namespace
|
||||||
int
|
int
|
||||||
path::compare(const path& p) const noexcept
|
path::compare(const path& p) const noexcept
|
||||||
{
|
{
|
||||||
|
struct CmptRef
|
||||||
|
{
|
||||||
|
const path* ptr;
|
||||||
|
const string_type& native() const noexcept { return ptr->native(); }
|
||||||
|
};
|
||||||
|
|
||||||
if (_M_type == _Type::_Multi && p._M_type == _Type::_Multi)
|
if (_M_type == _Type::_Multi && p._M_type == _Type::_Multi)
|
||||||
return do_compare(_M_cmpts.begin(), _M_cmpts.end(),
|
return do_compare(_M_cmpts.begin(), _M_cmpts.end(),
|
||||||
p._M_cmpts.begin(), p._M_cmpts.end());
|
p._M_cmpts.begin(), p._M_cmpts.end());
|
||||||
else if (_M_type == _Type::_Multi)
|
else if (_M_type == _Type::_Multi)
|
||||||
{
|
{
|
||||||
_Cmpt c[1] = { { p._M_pathname, p._M_type, 0 } };
|
CmptRef c[1] = { { &p } };
|
||||||
return do_compare(_M_cmpts.begin(), _M_cmpts.end(), c, c+1);
|
return do_compare(_M_cmpts.begin(), _M_cmpts.end(), c, c+1);
|
||||||
}
|
}
|
||||||
else if (p._M_type == _Type::_Multi)
|
else if (p._M_type == _Type::_Multi)
|
||||||
{
|
{
|
||||||
_Cmpt c[1] = { { _M_pathname, _M_type, 0 } };
|
CmptRef c[1] = { { this } };
|
||||||
return do_compare(c, c+1, p._M_cmpts.begin(), p._M_cmpts.end());
|
return do_compare(c, c+1, p._M_cmpts.begin(), p._M_cmpts.end());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue