summaryrefslogtreecommitdiff
path: root/gold/dirsearch.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2011-05-25 06:15:28 +0000
committerIan Lance Taylor <ian@airs.com>2011-05-25 06:15:28 +0000
commit1706a06f9e3f4dbdc5f516e3631d44a081e8b95e (patch)
treeaf8a730d66a33ad655177a7ea6788553e659cc72 /gold/dirsearch.cc
parenta10ae760821ec6f09cf63f93e3b2ff0e03fbaa3d (diff)
* dirsearch.cc (Dirsearch::find): Replace n1 and n2 parameters
with name parameter. Add found_name parameter. * fileread.cc (Input_file::find_file): Adjust code accordingly. * dirsearch.h (class Dirsearch): Update declaration.
Diffstat (limited to 'gold/dirsearch.cc')
-rw-r--r--gold/dirsearch.cc38
1 files changed, 16 insertions, 22 deletions
diff --git a/gold/dirsearch.cc b/gold/dirsearch.cc
index fac3b2c857..a149db527d 100644
--- a/gold/dirsearch.cc
+++ b/gold/dirsearch.cc
@@ -1,6 +1,6 @@
// dirsearch.cc -- directory searching for gold
-// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
@@ -241,8 +241,9 @@ Dirsearch::initialize(Workqueue* workqueue,
// File_read::open.
std::string
-Dirsearch::find(const std::string& n1, const std::string& n2,
- bool* is_in_sysroot, int* pindex) const
+Dirsearch::find(const std::vector<std::string>& names,
+ bool* is_in_sysroot, int* pindex,
+ std::string *found_name) const
{
gold_assert(!this->token_.is_blocked());
gold_assert(*pindex >= 0);
@@ -254,27 +255,20 @@ Dirsearch::find(const std::string& n1, const std::string& n2,
const Search_directory* p = &this->directories_->at(i);
Dir_cache* pdc = caches->lookup(p->name().c_str());
gold_assert(pdc != NULL);
- if (pdc->find(n1))
+ for (std::vector<std::string>::const_iterator n = names.begin();
+ n != names.end();
+ ++n)
{
- *is_in_sysroot = p->is_in_sysroot();
- *pindex = i;
- return p->name() + '/' + n1;
- }
- else
- gold_debug(DEBUG_FILES, "Attempt to open %s/%s failed",
- p->name().c_str(), n1.c_str());
-
- if (!n2.empty())
- {
- if (pdc->find(n2))
- {
- *is_in_sysroot = p->is_in_sysroot();
+ if (pdc->find(*n))
+ {
+ *is_in_sysroot = p->is_in_sysroot();
*pindex = i;
- return p->name() + '/' + n2;
- }
- else
- gold_debug(DEBUG_FILES, "Attempt to open %s/%s failed",
- p->name().c_str(), n2.c_str());
+ *found_name = *n;
+ return p->name() + '/' + *n;
+ }
+ else
+ gold_debug(DEBUG_FILES, "Attempt to open %s/%s failed",
+ p->name().c_str(), (*n).c_str());
}
}