projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix a ValueTracking rule: RHS means operand 1, not 0. Add a simple
[oota-llvm.git]
/
lib
/
System
/
DynamicLibrary.cpp
diff --git
a/lib/System/DynamicLibrary.cpp
b/lib/System/DynamicLibrary.cpp
index bdbcbd406fdc703fed083cba1f86b70a19416f3d..3bf172c22b3f376302cc30365fcc088f5a8376fb 100644
(file)
--- a/
lib/System/DynamicLibrary.cpp
+++ b/
lib/System/DynamicLibrary.cpp
@@
-13,15
+13,19
@@
#include "llvm/System/DynamicLibrary.h"
#include "llvm/Config/config.h"
#include "llvm/System/DynamicLibrary.h"
#include "llvm/Config/config.h"
+#include <cstdio>
#include <cstring>
#include <map>
// Collection of symbol name/value pairs to be searched prior to any libraries.
#include <cstring>
#include <map>
// Collection of symbol name/value pairs to be searched prior to any libraries.
-static std::map<std::string, void *> g_symbols;
+std::map<std::string, void *> &g_symbols() {
+ static std::map<std::string, void *> symbols;
+ return symbols;
+}
void llvm::sys::DynamicLibrary::AddSymbol(const char* symbolName,
void *symbolValue) {
void llvm::sys::DynamicLibrary::AddSymbol(const char* symbolName,
void *symbolValue) {
- g_symbols[symbolName] = symbolValue;
+ g_symbols
()
[symbolName] = symbolValue;
}
// It is not possible to use ltdl.c on VC++ builds as the terms of its LGPL
}
// It is not possible to use ltdl.c on VC++ builds as the terms of its LGPL
@@
-50,7
+54,7
@@
using namespace llvm::sys;
//static std::vector<lt_dlhandle> OpenedHandles;
static std::vector<void *> OpenedHandles;
//static std::vector<lt_dlhandle> OpenedHandles;
static std::vector<void *> OpenedHandles;
-DynamicLibrary::DynamicLibrary()
: handle(0)
{}
+DynamicLibrary::DynamicLibrary() {}
DynamicLibrary::~DynamicLibrary() {
while(!OpenedHandles.empty()) {
DynamicLibrary::~DynamicLibrary() {
while(!OpenedHandles.empty()) {
@@
-61,7
+65,7
@@
DynamicLibrary::~DynamicLibrary() {
bool DynamicLibrary::LoadLibraryPermanently(const char *Filename,
std::string *ErrMsg) {
bool DynamicLibrary::LoadLibraryPermanently(const char *Filename,
std::string *ErrMsg) {
- void *H = dlopen(Filename, RTLD_LAZY);
+ void *H = dlopen(Filename, RTLD_LAZY
|RTLD_GLOBAL
);
if (H == 0) {
if (ErrMsg)
*ErrMsg = dlerror();
if (H == 0) {
if (ErrMsg)
*ErrMsg = dlerror();
@@
-75,8
+79,8
@@
void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
// check_ltdl_initialization();
// First check symbols added via AddSymbol().
// check_ltdl_initialization();
// First check symbols added via AddSymbol().
- std::map<std::string, void *>::iterator I = g_symbols.find(symbolName);
- if (I != g_symbols.end())
+ std::map<std::string, void *>::iterator I = g_symbols
()
.find(symbolName);
+ if (I != g_symbols
()
.end())
return I->second;
// Now search the libraries.
return I->second;
// Now search the libraries.
@@
-158,11
+162,4
@@
void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
return 0;
}
return 0;
}
-void *DynamicLibrary::GetAddressOfSymbol(const char *symbolName) {
- assert(handle != 0 && "Invalid DynamicLibrary handle");
- return dlsym(handle, symbolName);
-}
-
#endif // LLVM_ON_WIN32
#endif // LLVM_ON_WIN32
-
-DEFINING_FILE_FOR(SystemDynamicLibrary)