Don't release the Module, as that invalidates the Module* within the

ModuleProvider, which has bad consequences in lli::callAsMain() which tries to
access that same Module*.

llvm-svn: 9205
This commit is contained in:
Misha Brukman 2003-10-17 18:31:59 +00:00
parent 21797d71d9
commit 546d6e6764

View File

@ -28,7 +28,7 @@ ExecutionEngine::ExecutionEngine(ModuleProvider *P) :
} }
ExecutionEngine::ExecutionEngine(Module *M) : CurMod(*M), MP(0) { ExecutionEngine::ExecutionEngine(Module *M) : CurMod(*M), MP(0) {
assert(M && "Module is null?"); assert(M && "Module is null?");
} }
ExecutionEngine::~ExecutionEngine() { ExecutionEngine::~ExecutionEngine() {
@ -51,7 +51,7 @@ ExecutionEngine *ExecutionEngine::create(ModuleProvider *MP,
// If we can't make a JIT, make an interpreter instead. // If we can't make a JIT, make an interpreter instead.
try { try {
if (EE == 0) if (EE == 0)
EE = Interpreter::create(MP->releaseModule(), TraceMode); EE = Interpreter::create(MP->materializeModule(), TraceMode);
} catch (...) { } catch (...) {
EE = 0; EE = 0;
} }