From 1706a06f9e3f4dbdc5f516e3631d44a081e8b95e Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 25 May 2011 06:15:28 +0000 Subject: * 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. --- gold/dirsearch.cc | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) (limited to 'gold/dirsearch.cc') diff --git a/gold/dirsearch.cc b/gold/dirsearch.cc index fac3b2c..a149db5 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 . // 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& 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::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()); } } -- cgit v1.1