Fix memory leaks when resolving symbols.
This was seen in an experimental branch of cmssw.
This commit is contained in:
parent
904796d2bb
commit
ad5bcb1ce5
@ -97,6 +97,9 @@ namespace cling {
|
||||
public:
|
||||
DynamicLibraryManager(const InvocationOptions& Opts);
|
||||
~DynamicLibraryManager();
|
||||
DynamicLibraryManager(const DynamicLibraryManager&) = delete;
|
||||
DynamicLibraryManager& operator=(const DynamicLibraryManager&) = delete;
|
||||
|
||||
InterpreterCallbacks* getCallbacks() { return m_Callbacks; }
|
||||
const InterpreterCallbacks* getCallbacks() const { return m_Callbacks; }
|
||||
void setCallbacks(InterpreterCallbacks* C) { m_Callbacks = C; }
|
||||
|
@ -298,10 +298,6 @@ std::string GetExecutablePath() {
|
||||
}
|
||||
|
||||
namespace cling {
|
||||
DynamicLibraryManager::~DynamicLibraryManager() {
|
||||
delete m_Dyld;
|
||||
}
|
||||
|
||||
class Dyld {
|
||||
struct BasePathHashFunction {
|
||||
size_t operator()(const BasePath& item) const {
|
||||
@ -869,6 +865,11 @@ namespace cling {
|
||||
return ""; // Search found no match.
|
||||
}
|
||||
|
||||
DynamicLibraryManager::~DynamicLibraryManager() {
|
||||
static_assert(sizeof(Dyld) > 0, "Incomplete type");
|
||||
delete m_Dyld;
|
||||
}
|
||||
|
||||
void DynamicLibraryManager::initializeDyld(
|
||||
std::function<bool(llvm::StringRef)> shouldPermanentlyIgnore) {
|
||||
assert(!m_Dyld && "Already initialized!");
|
||||
|
Loading…
x
Reference in New Issue
Block a user