summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/qcommon/vm.c8
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);