X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FSystem%2FDynamicLibrary.cpp;h=572ba496e191451d201a7c9cd3195911f8909fab;hb=629c1a3f78494d0dd769fe82bd2bd17df0555843;hp=44666a334bb3a9f3c900aa1ecafe63a015805be4;hpb=e45252efee1fde81bf5a796b0293fbe18ff4946a;p=oota-llvm.git diff --git a/lib/System/DynamicLibrary.cpp b/lib/System/DynamicLibrary.cpp index 44666a334bb..572ba496e19 100644 --- a/lib/System/DynamicLibrary.cpp +++ b/lib/System/DynamicLibrary.cpp @@ -50,7 +50,7 @@ using namespace llvm::sys; //static std::vector OpenedHandles; static std::vector OpenedHandles; -DynamicLibrary::DynamicLibrary() : handle(0) {} +DynamicLibrary::DynamicLibrary() {} DynamicLibrary::~DynamicLibrary() { while(!OpenedHandles.empty()) { @@ -63,7 +63,8 @@ bool DynamicLibrary::LoadLibraryPermanently(const char *Filename, std::string *ErrMsg) { void *H = dlopen(Filename, RTLD_LAZY); if (H == 0) { - ErrMsg = new std::string(dlerror()); + if (ErrMsg) + *ErrMsg = dlerror(); return true; } OpenedHandles.push_back(H); @@ -118,6 +119,7 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) { #ifdef __CYGWIN__ { EXPLICIT_SYMBOL(_alloca); + EXPLICIT_SYMBOL(__main); } #endif @@ -156,11 +158,4 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) { return 0; } -void *DynamicLibrary::GetAddressOfSymbol(const char *symbolName) { - assert(handle != 0 && "Invalid DynamicLibrary handle"); - return dlsym(handle, symbolName); -} - #endif // LLVM_ON_WIN32 - -DEFINING_FILE_FOR(SystemDynamicLibrary)