summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/COFF/DebugTypes.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/lld/COFF/DebugTypes.cpp b/lld/COFF/DebugTypes.cpp
index 6c7d70ee8dc..0960f16b01e 100644
--- a/lld/COFF/DebugTypes.cpp
+++ b/lld/COFF/DebugTypes.cpp
@@ -10,6 +10,7 @@
#include "Driver.h"
#include "InputFiles.h"
#include "lld/Common/ErrorHandler.h"
+#include "lld/Common/Memory.h"
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
#include "llvm/DebugInfo/PDB/GenericError.h"
#include "llvm/DebugInfo/PDB/Native/InfoStream.h"
@@ -91,29 +92,25 @@ public:
};
} // namespace
-static std::vector<std::unique_ptr<TpiSource>> GC;
-
-TpiSource::TpiSource(TpiKind k, const ObjFile *f) : kind(k), file(f) {
- GC.push_back(std::unique_ptr<TpiSource>(this));
-}
+TpiSource::TpiSource(TpiKind k, const ObjFile *f) : kind(k), file(f) {}
TpiSource *makeTpiSource(const ObjFile *f) {
- return new TpiSource(TpiSource::Regular, f);
+ return make<TpiSource>(TpiSource::Regular, f);
}
TpiSource *makeUseTypeServerSource(const ObjFile *f,
const TypeServer2Record *ts) {
TypeServerSource::enqueue(f, *ts);
- return new UseTypeServerSource(f, ts);
+ return make<UseTypeServerSource>(f, ts);
}
TpiSource *makePrecompSource(const ObjFile *f) {
- return new PrecompSource(f);
+ return make<PrecompSource>(f);
}
TpiSource *makeUsePrecompSource(const ObjFile *f,
const PrecompRecord *precomp) {
- return new UsePrecompSource(f, precomp);
+ return make<UsePrecompSource>(f, precomp);
}
template <>
@@ -260,7 +257,7 @@ Expected<TypeServerSource *> TypeServerSource::getInstance(MemoryBufferRef m) {
// All PDB Files should have an Info stream.
if (!info)
return info.takeError();
- return new TypeServerSource(m, session.release());
+ return make<TypeServerSource>(m, session.release());
}
} // namespace coff
OpenPOWER on IntegriCloud