[lld] r234080 - Remove a parameter for file extension from canParse.

Rui Ueyama ruiu at google.com
Fri Apr 3 19:44:37 PDT 2015


Author: ruiu
Date: Fri Apr  3 21:44:36 2015
New Revision: 234080

URL: http://llvm.org/viewvc/llvm-project?rev=234080&view=rev
Log:
Remove a parameter for file extension from canParse.

canParse took three parameters -- file magic, filename extension and
memory buffer. All but YAMLReader ignored the second parameter.
This patch removes the parameter.

Modified:
    lld/trunk/include/lld/Core/Reader.h
    lld/trunk/lib/Core/Reader.cpp
    lld/trunk/lib/ReaderWriter/ELF/ELFReader.h
    lld/trunk/lib/ReaderWriter/FileArchive.cpp
    lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
    lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp
    lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
    lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp
    lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp

Modified: lld/trunk/include/lld/Core/Reader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Reader.h?rev=234080&r1=234079&r2=234080&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/Reader.h (original)
+++ lld/trunk/include/lld/Core/Reader.h Fri Apr  3 21:44:36 2015
@@ -45,10 +45,8 @@ public:
   /// Sniffs the file to determine if this Reader can parse it.
   /// The method is called with:
   /// 1) the file_magic enumeration returned by identify_magic()
-  /// 2) the file extension (e.g. ".obj")
-  /// 3) the whole file content buffer if the above is not enough.
-  virtual bool canParse(file_magic magic, StringRef fileExtension,
-                        const MemoryBuffer &mb) const = 0;
+  /// 2) the whole file content buffer if the above is not enough.
+  virtual bool canParse(file_magic magic, const MemoryBuffer &mb) const = 0;
 
   /// \brief Parse a supplied buffer (already filled with the contents of a
   /// file) and create a File object.

Modified: lld/trunk/lib/Core/Reader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/Reader.cpp?rev=234080&r1=234079&r2=234080&view=diff
==============================================================================
--- lld/trunk/lib/Core/Reader.cpp (original)
+++ lld/trunk/lib/Core/Reader.cpp Fri Apr  3 21:44:36 2015
@@ -13,7 +13,6 @@
 #include "llvm/Support/Errc.h"
 #include "llvm/Support/FileUtilities.h"
 #include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/Path.h"
 #include <memory>
 #include <system_error>
 
@@ -32,15 +31,13 @@ void Registry::add(std::unique_ptr<YamlI
 std::error_code
 Registry::loadFile(std::unique_ptr<MemoryBuffer> mb,
                    std::vector<std::unique_ptr<File>> &result) const {
-  // Get file type.
+  // Get file magic.
   StringRef content(mb->getBufferStart(), mb->getBufferSize());
   llvm::sys::fs::file_magic fileType = llvm::sys::fs::identify_magic(content);
-  // Get file extension.
-  StringRef extension = llvm::sys::path::extension(mb->getBufferIdentifier());
 
   // Ask each registered reader if it can handle this file type or extension.
   for (const std::unique_ptr<Reader> &reader : _readers) {
-    if (!reader->canParse(fileType, extension, *mb))
+    if (!reader->canParse(fileType, *mb))
       continue;
     if (std::error_code ec = reader->loadFile(std::move(mb), *this, result))
       return ec;

Modified: lld/trunk/lib/ReaderWriter/ELF/ELFReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ELFReader.h?rev=234080&r1=234079&r2=234080&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ELFReader.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ELFReader.h Fri Apr  3 21:44:36 2015
@@ -25,10 +25,9 @@ public:
 
   ELFReader(ContextT &ctx) : _ctx(ctx) {}
 
-  bool canParse(file_magic magic, StringRef,
-                const MemoryBuffer &buf) const override {
+  bool canParse(file_magic magic, const MemoryBuffer &mb) const override {
     return (FileT<ELFT>::canParse(magic) &&
-            elfHeader(buf)->e_machine == ContextT::machine);
+            elfHeader(mb)->e_machine == ContextT::machine);
   }
 
   std::error_code

Modified: lld/trunk/lib/ReaderWriter/FileArchive.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/FileArchive.cpp?rev=234080&r1=234079&r2=234080&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/FileArchive.cpp (original)
+++ lld/trunk/lib/ReaderWriter/FileArchive.cpp Fri Apr  3 21:44:36 2015
@@ -265,9 +265,8 @@ class ArchiveReader : public Reader {
 public:
   ArchiveReader(bool logLoading) : _logLoading(logLoading) {}
 
-  bool canParse(file_magic magic, StringRef,
-                const MemoryBuffer &) const override {
-    return (magic == llvm::sys::fs::file_magic::archive);
+  bool canParse(file_magic magic, const MemoryBuffer &) const override {
+    return magic == llvm::sys::fs::file_magic::archive;
   }
 
   std::error_code

Modified: lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp?rev=234080&r1=234079&r2=234080&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp (original)
+++ lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp Fri Apr  3 21:44:36 2015
@@ -516,14 +516,9 @@ class MachOObjectReader : public Reader
 public:
   MachOObjectReader(MachOLinkingContext &ctx) : _ctx(ctx) {}
 
-  bool canParse(file_magic magic, StringRef ext,
-                const MemoryBuffer &mb) const override {
-    switch (magic) {
-    case llvm::sys::fs::file_magic::macho_object:
-      return (mb.getBufferSize() > 32);
-    default:
-      return false;
-    }
+  bool canParse(file_magic magic, const MemoryBuffer &mb) const override {
+    return (magic == llvm::sys::fs::file_magic::macho_object &&
+            mb.getBufferSize() > 32);
   }
 
   std::error_code
@@ -542,12 +537,11 @@ class MachODylibReader : public Reader {
 public:
   MachODylibReader(MachOLinkingContext &ctx) : _ctx(ctx) {}
 
-  bool canParse(file_magic magic, StringRef ext,
-                const MemoryBuffer &mb) const override {
+  bool canParse(file_magic magic, const MemoryBuffer &mb) const override {
     switch (magic) {
     case llvm::sys::fs::file_magic::macho_dynamically_linked_shared_lib:
     case llvm::sys::fs::file_magic::macho_dynamically_linked_shared_lib_stub:
-      return (mb.getBufferSize() > 32);
+      return mb.getBufferSize() > 32;
     default:
       return false;
     }

Modified: lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp?rev=234080&r1=234079&r2=234080&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp (original)
+++ lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp Fri Apr  3 21:44:36 2015
@@ -988,8 +988,7 @@ namespace {
 
 class NativeReader : public Reader {
 public:
-  virtual bool canParse(file_magic magic, StringRef,
-                        const MemoryBuffer &mb) const override {
+  bool canParse(file_magic magic, const MemoryBuffer &mb) const override {
     const NativeFileHeader *const header =
         reinterpret_cast<const NativeFileHeader *>(mb.getBufferStart());
     return (memcmp(header->magic, NATIVE_FILE_HEADER_MAGIC,

Modified: lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp?rev=234080&r1=234079&r2=234080&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp (original)
+++ lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp Fri Apr  3 21:44:36 2015
@@ -1049,8 +1049,7 @@ class COFFObjectReader : public Reader {
 public:
   COFFObjectReader(PECOFFLinkingContext &ctx) : _ctx(ctx) {}
 
-  bool canParse(file_magic magic, StringRef ext,
-                const MemoryBuffer &) const override {
+  bool canParse(file_magic magic, const MemoryBuffer &) const override {
     return magic == llvm::sys::fs::file_magic::coff_object;
   }
 

Modified: lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp?rev=234080&r1=234079&r2=234080&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp (original)
+++ lld/trunk/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp Fri Apr  3 21:44:36 2015
@@ -361,11 +361,10 @@ class COFFImportLibraryReader : public R
 public:
   COFFImportLibraryReader(PECOFFLinkingContext &ctx) : _ctx(ctx) {}
 
-  bool canParse(file_magic magic, StringRef,
-                const MemoryBuffer &mb) const override {
+  bool canParse(file_magic magic, const MemoryBuffer &mb) const override {
     if (mb.getBufferSize() < sizeof(COFF::ImportHeader))
       return false;
-    return (magic == llvm::sys::fs::file_magic::coff_import_library);
+    return magic == llvm::sys::fs::file_magic::coff_import_library;
   }
 
   std::error_code

Modified: lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp?rev=234080&r1=234079&r2=234080&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp (original)
+++ lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp Fri Apr  3 21:44:36 2015
@@ -25,6 +25,7 @@
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/Path.h"
 #include "llvm/Support/YAMLTraits.h"
 #include "llvm/Support/raw_ostream.h"
 #include <memory>
@@ -1304,8 +1305,9 @@ class YAMLReader : public Reader {
 public:
   YAMLReader(const Registry &registry) : _registry(registry) {}
 
-  bool canParse(file_magic, StringRef ext, const MemoryBuffer &) const override {
-    return (ext.equals(".objtxt") || ext.equals(".yaml"));
+  bool canParse(file_magic magic, const MemoryBuffer &mb) const override {
+    StringRef ext = llvm::sys::path::extension(mb.getBufferIdentifier());
+    return ext.equals(".objtxt") || ext.equals(".yaml");
   }
 
   std::error_code





More information about the llvm-commits mailing list