diff --git a/vvm/src/vm.c b/vvm/src/vm.c index 313f437..cbd2ad8 100644 --- a/vvm/src/vm.c +++ b/vvm/src/vm.c @@ -28,7 +28,7 @@ static inline void disassemble(int sp, int fp, int ip, int opcode, instruction* } void vm_execute(int code[], int ip, int datasize, unsigned long length){ - int* data = (int *) malloc((unsigned long)datasize * sizeof(int)); + int* data = (int *) alloca((size_t)datasize * sizeof(int)); int stack[MAX_SIZE]; int sp = -1; int fp = -1; @@ -159,9 +159,6 @@ void vm_execute(int code[], int ip, int datasize, unsigned long length){ die(127, "Exit on program failure."); } } - - free(data); - return; } diff --git a/vvm/src/vm.h b/vvm/src/vm.h index 27d4f08..e66298a 100644 --- a/vvm/src/vm.h +++ b/vvm/src/vm.h @@ -4,6 +4,7 @@ #include #include #include +#include #include "util.h" #include "opcode.h"