[llvm-commits] [llvm] r74926 - in /llvm/trunk: include/llvm/System/DynamicLibrary.h lib/System/DynamicLibrary.cpp

Chris Lattner sabre at nondot.org
Tue Jul 7 11:02:29 PDT 2009


Author: lattner
Date: Tue Jul  7 13:01:58 2009
New Revision: 74926

URL: http://llvm.org/viewvc/llvm-project?rev=74926&view=rev
Log:
remove dead code, noone creates instances of "DynamicLibrary", so the ctor and dtor are dead.

Modified:
    llvm/trunk/include/llvm/System/DynamicLibrary.h
    llvm/trunk/lib/System/DynamicLibrary.cpp

Modified: llvm/trunk/include/llvm/System/DynamicLibrary.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/System/DynamicLibrary.h?rev=74926&r1=74925&r2=74926&view=diff

==============================================================================
--- llvm/trunk/include/llvm/System/DynamicLibrary.h (original)
+++ llvm/trunk/include/llvm/System/DynamicLibrary.h Tue Jul  7 13:01:58 2009
@@ -14,7 +14,6 @@
 #ifndef LLVM_SYSTEM_DYNAMIC_LIBRARY_H
 #define LLVM_SYSTEM_DYNAMIC_LIBRARY_H
 
-#include "llvm/System/Path.h"
 #include <string>
 
 namespace llvm {
@@ -30,66 +29,40 @@
   /// but rather the main program itself, useful on Windows where the main
   /// executable cannot be searched.
   class DynamicLibrary {
-    /// @name Constructors
-    /// @{
-    public:
-      /// Construct a DynamicLibrary that represents the currently executing
-      /// program. The program must have been linked with -export-dynamic or
-      /// -dlopen self for this to work. 
-      /// @throws std::string indicating why the program couldn't be opened.
-      /// @brief Open program as dynamic library.
-      DynamicLibrary();
-
-      /// After destruction, the symbols of the library will no longer be
-      /// available to the program. 
-      /// @brief Closes the DynamicLibrary
-      ~DynamicLibrary();
-
-    /// @}
-    /// @name Functions
-    /// @{
-    public:
-      /// This function allows a library to be loaded without instantiating a
-      /// DynamicLibrary object. Consequently, it is marked as being permanent
-      /// and will only be unloaded when the program terminates.  This returns
-      /// false on success or returns true and fills in *ErrMsg on failure.
-      /// @brief Open a dynamic library permanently.
-      static bool LoadLibraryPermanently(const char* filename,
-                                         std::string *ErrMsg = 0);
-
-      /// This function will search through all previously loaded dynamic
-      /// libraries for the symbol \p symbolName. If it is found, the addressof
-      /// that symbol is returned. If not, null is returned. Note that this will
-      /// search permanently loaded libraries (LoadLibraryPermanently) as well
-      /// as ephemerally loaded libraries (constructors).
-      /// @throws std::string on error.
-      /// @brief Search through libraries for address of a symbol
-      static void* SearchForAddressOfSymbol(const char* symbolName);
-
-      /// @brief Convenience function for C++ophiles.
-      static void* SearchForAddressOfSymbol(const std::string& symbolName) {
-        return SearchForAddressOfSymbol(symbolName.c_str());
-      }
-
-      /// This functions permanently adds the symbol \p symbolName with the
-      /// value \p symbolValue.  These symbols are searched before any
-      /// libraries.
-      /// @brief Add searchable symbol/value pair.
-      static void AddSymbol(const char* symbolName, void *symbolValue);
-
-      /// @brief Convenience function for C++ophiles.
-      static void AddSymbol(const std::string& symbolName, void *symbolValue) {
-        AddSymbol(symbolName.c_str(), symbolValue);
-      }
-
-    /// @}
-    /// @name Implementation
-    /// @{
-    protected:
-      void* handle;  // Opaque handle for information about the library
-      DynamicLibrary(const DynamicLibrary&); ///< Do not implement
-      DynamicLibrary& operator=(const DynamicLibrary&); ///< Do not implement
-    /// @}
+    DynamicLibrary(); // DO NOT IMPLEMENT
+  public:
+    /// This function allows a library to be loaded without instantiating a
+    /// DynamicLibrary object. Consequently, it is marked as being permanent
+    /// and will only be unloaded when the program terminates.  This returns
+    /// false on success or returns true and fills in *ErrMsg on failure.
+    /// @brief Open a dynamic library permanently.
+    static bool LoadLibraryPermanently(const char *filename,
+                                       std::string *ErrMsg = 0);
+
+    /// This function will search through all previously loaded dynamic
+    /// libraries for the symbol \p symbolName. If it is found, the addressof
+    /// that symbol is returned. If not, null is returned. Note that this will
+    /// search permanently loaded libraries (LoadLibraryPermanently) as well
+    /// as ephemerally loaded libraries (constructors).
+    /// @throws std::string on error.
+    /// @brief Search through libraries for address of a symbol
+    static void *SearchForAddressOfSymbol(const char *symbolName);
+
+    /// @brief Convenience function for C++ophiles.
+    static void *SearchForAddressOfSymbol(const std::string &symbolName) {
+      return SearchForAddressOfSymbol(symbolName.c_str());
+    }
+
+    /// This functions permanently adds the symbol \p symbolName with the
+    /// value \p symbolValue.  These symbols are searched before any
+    /// libraries.
+    /// @brief Add searchable symbol/value pair.
+    static void AddSymbol(const char *symbolName, void *symbolValue);
+
+    /// @brief Convenience function for C++ophiles.
+    static void AddSymbol(const std::string &symbolName, void *symbolValue) {
+      AddSymbol(symbolName.c_str(), symbolValue);
+    }
   };
 
 } // End sys namespace

Modified: llvm/trunk/lib/System/DynamicLibrary.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/System/DynamicLibrary.cpp?rev=74926&r1=74925&r2=74926&view=diff

==============================================================================
--- llvm/trunk/lib/System/DynamicLibrary.cpp (original)
+++ llvm/trunk/lib/System/DynamicLibrary.cpp Tue Jul  7 13:01:58 2009
@@ -18,6 +18,7 @@
 #include <cstdio>
 #include <cstring>
 #include <map>
+#include <vector>
 
 // Collection of symbol name/value pairs to be searched prior to any libraries.
 static std::map<std::string, void*> symbols;
@@ -47,16 +48,6 @@
 
 static std::vector<void *> OpenedHandles;
 
-DynamicLibrary::DynamicLibrary() {}
-
-DynamicLibrary::~DynamicLibrary() {
-  SmartScopedWriter<true> Writer(&SymbolsLock);
-  while(!OpenedHandles.empty()) {
-    void *H = OpenedHandles.back();
-    OpenedHandles.pop_back(); 
-    dlclose(H);
-  }
-}
 
 bool DynamicLibrary::LoadLibraryPermanently(const char *Filename,
                                             std::string *ErrMsg) {





More information about the llvm-commits mailing list