[lld] r233454 - Use lambda for std::find_if.

Rui Ueyama ruiu at google.com
Fri Mar 27 17:00:09 PDT 2015


Author: ruiu
Date: Fri Mar 27 19:00:09 2015
New Revision: 233454

URL: http://llvm.org/viewvc/llvm-project?rev=233454&view=rev
Log:
Use lambda for std::find_if.

Modified:
    lld/trunk/lib/ReaderWriter/ELF/ELFFile.h

Modified: lld/trunk/lib/ReaderWriter/ELF/ELFFile.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ELFFile.h?rev=233454&r1=233453&r2=233454&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ELFFile.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ELFFile.h Fri Mar 27 19:00:09 2015
@@ -40,6 +40,7 @@ template <class ELFT> class ELFFile : pu
     const Elf_Shdr *_shdr;
     int64_t _offset;
   };
+
   struct MergeSectionEq {
     int64_t operator()(const MergeSectionKey &k) const {
       return llvm::hash_combine((int64_t)(k._shdr->sh_name),
@@ -71,23 +72,15 @@ template <class ELFT> class ELFFile : pu
   // offset
   typedef std::vector<ELFMergeAtom<ELFT> *> MergeAtomsT;
 
-  /// \brief find a mergeAtom given a start offset
-  struct FindByOffset {
-    const Elf_Shdr *_shdr;
-    int64_t _offset;
-    FindByOffset(const Elf_Shdr *shdr, int64_t offset)
-        : _shdr(shdr), _offset(offset) {}
-    bool operator()(const ELFMergeAtom<ELFT> *a) {
-      int64_t off = a->offset();
-      return (_shdr->sh_name == a->section()) &&
-             ((_offset >= off) && (_offset <= off + (int64_t)a->size()));
-    }
-  };
-
   /// \brief find a merge atom given a offset
-  ELFMergeAtom<ELFT> *findMergeAtom(const Elf_Shdr *shdr, uint64_t offset) {
+  ELFMergeAtom<ELFT> *findMergeAtom(const Elf_Shdr *shdr, int64_t offset) {
     auto it = std::find_if(_mergeAtoms.begin(), _mergeAtoms.end(),
-                           FindByOffset(shdr, offset));
+                           [=](const ELFMergeAtom<ELFT> *a) {
+                             int64_t off = a->offset();
+                             return shdr->sh_name == a->section() &&
+                                    offset >= off &&
+                                    offset <= off + (int64_t)a->size();
+                           });
     assert(it != _mergeAtoms.end());
     return *it;
   }





More information about the llvm-commits mailing list