[vmkit-commits] [vmkit] r89504 - /vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Fri Nov 20 14:58:07 PST 2009
Author: geoffray
Date: Fri Nov 20 16:58:07 2009
New Revision: 89504
URL: http://llvm.org/viewvc/llvm-project?rev=89504&view=rev
Log:
Do not allocate the opcodeInfos array on stack, it could be too big for it.
Modified:
vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp?rev=89504&r1=89503&r2=89504&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp Fri Nov 20 16:58:07 2009
@@ -788,7 +788,7 @@
currentBlock = curBB;
endExceptionBlock = endExBlock;
- opcodeInfos = (Opinfo*)alloca(codeLen * sizeof(Opinfo));
+ opcodeInfos = new Opinfo[codeLen];
memset(opcodeInfos, 0, codeLen * sizeof(Opinfo));
for (uint32 i = 0; i < codeLen; ++i) {
opcodeInfos[i].exceptionBlock = endExBlock;
@@ -936,6 +936,7 @@
removeUnusedObjects(objectStack, module, TheCompiler->useCooperativeGC());
+ delete[] opcodeInfos;
return endNode;
}
@@ -974,7 +975,7 @@
endExceptionBlock = createBasicBlock("endExceptionBlock");
unifiedUnreachable = createBasicBlock("unifiedUnreachable");
- opcodeInfos = (Opinfo*)alloca(codeLen * sizeof(Opinfo));
+ opcodeInfos = new Opinfo[codeLen];
memset(opcodeInfos, 0, codeLen * sizeof(Opinfo));
for (uint32 i = 0; i < codeLen; ++i) {
opcodeInfos[i].exceptionBlock = endExceptionBlock;
@@ -1267,7 +1268,9 @@
removeUnusedObjects(objectLocals, module, TheCompiler->useCooperativeGC());
removeUnusedObjects(objectStack, module, TheCompiler->useCooperativeGC());
-
+
+ delete[] opcodeInfos;
+
PRINT_DEBUG(JNJVM_COMPILE, 1, COLOR_NORMAL, "--> end compiling %s.%s\n",
UTF8Buffer(compilingClass->name).cString(),
UTF8Buffer(compilingMethod->name).cString());
More information about the vmkit-commits
mailing list