[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