diff options
author | Jeff Cohen <jeffc@jolt-lang.org> | 2006-01-30 04:33:51 +0000 |
---|---|---|
committer | Jeff Cohen <jeffc@jolt-lang.org> | 2006-01-30 04:33:51 +0000 |
commit | 85046901b8ab3c447889338f03a1fd2805198ad7 (patch) | |
tree | 25ecdfcb9e2ac7c3e14781e3a9e00ea714a2fffb /lib/System/Win32/DynamicLibrary.inc | |
parent | 0e753d617be1ff6a9ac0f894da9d2544e2489850 (diff) | |
download | llvm-85046901b8ab3c447889338f03a1fd2805198ad7.tar.gz llvm-85046901b8ab3c447889338f03a1fd2805198ad7.tar.bz2 llvm-85046901b8ab3c447889338f03a1fd2805198ad7.tar.xz |
Add AddSymbol() method to DynamicLibrary to work around Windows limitation
of being unable to search for symbols in an EXE. It will also allow other
existing hacks to be improved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25805 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/System/Win32/DynamicLibrary.inc')
-rw-r--r-- | lib/System/Win32/DynamicLibrary.inc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/System/Win32/DynamicLibrary.inc b/lib/System/Win32/DynamicLibrary.inc index 1492138682..310d3dc835 100644 --- a/lib/System/Win32/DynamicLibrary.inc +++ b/lib/System/Win32/DynamicLibrary.inc @@ -107,6 +107,12 @@ void DynamicLibrary::LoadLibraryPermanently(const char* filename) { } void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) { + // First check symbols added via AddSymbol(). + std::map<std::string, void *>::iterator I = g_symbols.find(symbolName); + if (I != g_symbols.end()) + return I->second; + + // Now search the libraries. for (std::vector<HMODULE>::iterator I = OpenedHandles.begin(), E = OpenedHandles.end(); I != E; ++I) { FARPROC ptr = GetProcAddress((HMODULE)*I, symbolName); |