summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancis Ricci <francisjricci@gmail.com>2017-09-29 20:04:29 +0000
committerFrancis Ricci <francisjricci@gmail.com>2017-09-29 20:04:29 +0000
commit74c93de659bc37d9ab5abe6bf0186bd57e72699e (patch)
tree14efc7feb2b97fcb60f0f5bab345dff93e55b32e
parent615a3bbdad3dce0b2594825abb74dfdd3f6e7536 (diff)
downloadbcm5719-llvm-74c93de659bc37d9ab5abe6bf0186bd57e72699e.tar.gz
bcm5719-llvm-74c93de659bc37d9ab5abe6bf0186bd57e72699e.zip
Revert "Move LoadedModule list to a NoCtor vector and initialize on demand."
I think this may have introduced a failure on llvm-clang-lld-x86_64-debian-fast This reverts commit r314533 llvm-svn: 314552
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_common.h9
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc6
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_mac.cc2
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h2
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc2
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc2
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_win.cc2
7 files changed, 10 insertions, 15 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common.h b/compiler-rt/lib/sanitizer_common/sanitizer_common.h
index 11ee5902462..47b02b149d3 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_common.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_common.h
@@ -727,7 +727,7 @@ class LoadedModule {
// filling this information.
class ListOfModules {
public:
- ListOfModules() : initialized(false) {}
+ ListOfModules() : modules_(kInitialCapacity) {}
~ListOfModules() { clear(); }
void init();
const LoadedModule *begin() const { return modules_.begin(); }
@@ -745,15 +745,10 @@ class ListOfModules {
for (auto &module : modules_) module.clear();
modules_.clear();
}
- void clearOrInit() {
- initialized ? clear() : modules_.Initialize(kInitialCapacity);
- initialized = true;
- }
- InternalMmapVectorNoCtor<LoadedModule> modules_;
+ InternalMmapVector<LoadedModule> modules_;
// We rarely have more than 16K loaded modules.
static const uptr kInitialCapacity = 1 << 14;
- bool initialized;
};
// Callback type for iterating over a set of memory ranges.
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
index 0f420875d43..da715dc6cdb 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
@@ -424,7 +424,7 @@ typedef ElfW(Phdr) Elf_Phdr;
# endif
struct DlIteratePhdrData {
- InternalMmapVectorNoCtor<LoadedModule> *modules;
+ InternalMmapVector<LoadedModule> *modules;
bool first;
};
@@ -473,13 +473,13 @@ static bool requiresProcmaps() {
#endif
}
-static void procmapsInit(InternalMmapVectorNoCtor<LoadedModule> *modules) {
+static void procmapsInit(InternalMmapVector<LoadedModule> *modules) {
MemoryMappingLayout memory_mapping(false);
memory_mapping.DumpListOfModules(modules);
}
void ListOfModules::init() {
- clearOrInit();
+ clear();
if (requiresProcmaps()) {
procmapsInit(&modules_);
} else {
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
index cd63cb42f63..1570ae277de 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
@@ -411,7 +411,7 @@ void GetThreadStackAndTls(bool main, uptr *stk_addr, uptr *stk_size,
}
void ListOfModules::init() {
- clearOrInit();
+ clear();
MemoryMappingLayout memory_mapping(false);
memory_mapping.DumpListOfModules(&modules_);
}
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h b/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
index d462ad8414d..96d0b2f9de7 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
@@ -76,7 +76,7 @@ class MemoryMappingLayout {
static void CacheMemoryMappings();
// Adds all mapped objects into a vector.
- void DumpListOfModules(InternalMmapVectorNoCtor<LoadedModule> *modules);
+ void DumpListOfModules(InternalMmapVector<LoadedModule> *modules);
private:
void LoadFromCache();
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc b/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc
index b9298d4cce2..30663e8c675 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc
@@ -120,7 +120,7 @@ void MemoryMappingLayout::LoadFromCache() {
}
void MemoryMappingLayout::DumpListOfModules(
- InternalMmapVectorNoCtor<LoadedModule> *modules) {
+ InternalMmapVector<LoadedModule> *modules) {
Reset();
InternalScopedString module_name(kMaxPathLength);
MemoryMappedSegment segment(module_name.data(), module_name.size());
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc b/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc
index 3b98ff09578..786876f0454 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc
@@ -353,7 +353,7 @@ bool MemoryMappingLayout::Next(MemoryMappedSegment *segment) {
}
void MemoryMappingLayout::DumpListOfModules(
- InternalMmapVectorNoCtor<LoadedModule> *modules) {
+ InternalMmapVector<LoadedModule> *modules) {
Reset();
InternalScopedString module_name(kMaxPathLength);
MemoryMappedSegment segment(module_name.data(), kMaxPathLength);
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_win.cc b/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
index 84065aa0e87..a144db28c33 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
@@ -524,7 +524,7 @@ static uptr GetPreferredBase(const char *modname) {
}
void ListOfModules::init() {
- clearOrInit();
+ clear();
HANDLE cur_process = GetCurrentProcess();
// Query the list of modules. Start by assuming there are no more than 256
OpenPOWER on IntegriCloud