diff options
-rw-r--r-- | src/qcommon/vm.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/qcommon/vm.c b/src/qcommon/vm.c index a3883209..b7860896 100644 --- a/src/qcommon/vm.c +++ b/src/qcommon/vm.c @@ -482,18 +482,20 @@ vmHeader_t *VM_LoadQVM( vm_t *vm, qboolean alloc, qboolean unpure) if(header.h->vmMagic == VM_MAGIC_VER2) { - Com_Printf("Loading %d jump table targets\n", vm->numJumpTableTargets); + int previousNumJumpTableTargets = vm->numJumpTableTargets; header.h->jtrgLength &= ~0x03; + vm->numJumpTableTargets = header.h->jtrgLength >> 2; + Com_Printf("Loading %d jump table targets\n", vm->numJumpTableTargets); + if(alloc) { vm->jumpTableTargets = Hunk_Alloc(header.h->jtrgLength, h_high); - vm->numJumpTableTargets = header.h->jtrgLength >> 2; } else { - if((header.h->jtrgLength >> 2) != vm->numJumpTableTargets) + if(vm->numJumpTableTargets != previousNumJumpTableTargets) { VM_Free(vm); FS_FreeFile(header.v); |