aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ExecutionEngine/RTDyldMemoryManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ExecutionEngine/RTDyldMemoryManager.cpp')
-rw-r--r--lib/ExecutionEngine/RTDyldMemoryManager.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/ExecutionEngine/RTDyldMemoryManager.cpp b/lib/ExecutionEngine/RTDyldMemoryManager.cpp
index de38b38..9926576 100644
--- a/lib/ExecutionEngine/RTDyldMemoryManager.cpp
+++ b/lib/ExecutionEngine/RTDyldMemoryManager.cpp
@@ -54,10 +54,15 @@ static const char *processFDE(const char *Entry) {
}
#endif
-void RTDyldMemoryManager::registerEHFrames(StringRef SectionData) {
+// This implementation handles frame registration for local targets.
+// Memory managers for remote targets should re-implement this function
+// and use the LoadAddr parameter.
+void RTDyldMemoryManager::registerEHFrames(uint8_t *Addr,
+ uint64_t LoadAddr,
+ size_t Size) {
#if HAVE_EHTABLE_SUPPORT
- const char *P = SectionData.data();
- const char *End = SectionData.data() + SectionData.size();
+ const char *P = (const char *)Addr;
+ const char *End = P + Size;
do {
P = processFDE(P);
} while(P != End);