From a91ee8cc7e65798b68f0bbddbcd70feca7a620de Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Wed, 29 Jan 2020 22:46:39 -0700 Subject: [PATCH] qbsp: fix heap corruption errors on VS2019. Winding bookkeeping is wrong now --- qbsp/util.cc | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/qbsp/util.cc b/qbsp/util.cc index 108b7dd2..e8baf720 100644 --- a/qbsp/util.cc +++ b/qbsp/util.cc @@ -70,11 +70,6 @@ AllocMem(int Type, int cElements, bool fZero) // Special stuff for face_t if (Type == FACE && cElements == 1) ((face_t *)pTemp)->planenum = -1; - if (Type == WINDING) { - // FIXME: Remove this! Causing UBSan warnings - *(int *)pTemp = cSize; - pTemp = (char *)pTemp + sizeof(int); - } rgMemTotal[Type] += cElements; rgMemActive[Type] += cElements; @@ -103,14 +98,9 @@ void FreeMem(void *pMem, int Type, int cElements) { rgMemActive[Type] -= cElements; - if (Type == WINDING) { - pMem = (char *)pMem - sizeof(int); - rgMemActiveBytes[Type] -= *(int *)pMem; - rgMemActive[GLOBAL] -= *(int *)pMem; - } else { - rgMemActiveBytes[Type] -= cElements * MemSize[Type]; - rgMemActive[GLOBAL] -= cElements * MemSize[Type]; - } + + rgMemActiveBytes[Type] -= cElements * MemSize[Type]; + rgMemActive[GLOBAL] -= cElements * MemSize[Type]; free(pMem); }