From 8694b48ae33fb010312be056e6b830b317e48526 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 9 Oct 2009 08:15:30 +0000 Subject: Set up a basic tracing system for all memory allocations to help track down memory leaks svn-id: r44808 --- engines/cruise/actor.cpp | 4 +- engines/cruise/background.cpp | 2 +- engines/cruise/backgroundIncrust.cpp | 10 ++--- engines/cruise/cell.cpp | 8 ++-- engines/cruise/cruise.cpp | 9 ++++- engines/cruise/cruise_main.cpp | 76 +++++++++++++++++++++++++++++------- engines/cruise/cruise_main.h | 9 ++++- engines/cruise/ctp.cpp | 6 +-- engines/cruise/dataLoader.cpp | 4 +- engines/cruise/font.cpp | 8 ++-- engines/cruise/function.cpp | 10 ++--- engines/cruise/mainDraw.cpp | 4 +- engines/cruise/menu.cpp | 8 ++-- engines/cruise/overlay.cpp | 8 ++-- engines/cruise/perso.cpp | 2 +- engines/cruise/saveload.cpp | 8 ++-- engines/cruise/sound.cpp | 8 ++-- engines/cruise/volume.cpp | 14 +++---- 18 files changed, 128 insertions(+), 70 deletions(-) diff --git a/engines/cruise/actor.cpp b/engines/cruise/actor.cpp index 845867409e..344552bf76 100644 --- a/engines/cruise/actor.cpp +++ b/engines/cruise/actor.cpp @@ -599,7 +599,7 @@ int16 computePathfinding(MovementEntry &moveInfo, int16 x, int16 y, int16 destX, return -1; } - perso = persoTable[i] = (persoStruct *) malloc(sizeof(persoStruct)); + perso = persoTable[i] = (persoStruct *) MemAlloc(sizeof(persoStruct)); ptr = perso->solution[0]; @@ -663,7 +663,7 @@ int16 computePathfinding(MovementEntry &moveInfo, int16 x, int16 y, int16 destX, return (-1); } - perso = persoTable[num] = (persoStruct *) malloc(sizeof(persoStruct)); + perso = persoTable[num] = (persoStruct *) MemAlloc(sizeof(persoStruct)); perso->inc_jo1 = stepX; perso->inc_jo2 = stepY; diff --git a/engines/cruise/background.cpp b/engines/cruise/background.cpp index 587c790554..cd4e64384b 100644 --- a/engines/cruise/background.cpp +++ b/engines/cruise/background.cpp @@ -107,7 +107,7 @@ int loadBackground(const char *name, int idx) { ptrToFree = gfxModuleData.pPage10; if (loadFileSub1(&ptrToFree, name, NULL) < 0) { if (ptrToFree != gfxModuleData.pPage10) - free(ptrToFree); + MemFree(ptrToFree); return (-18); } diff --git a/engines/cruise/backgroundIncrust.cpp b/engines/cruise/backgroundIncrust.cpp index 78cf49c653..6bd8b270e0 100644 --- a/engines/cruise/backgroundIncrust.cpp +++ b/engines/cruise/backgroundIncrust.cpp @@ -49,7 +49,7 @@ void backupBackground(backgroundIncrustStruct *pIncrust, int X, int Y, int width pIncrust->savedX = X; pIncrust->savedY = Y; - pIncrust->ptr = (uint8*)malloc(width * height); + pIncrust->ptr = (uint8*)MemAlloc(width * height); for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { int xp = j + X; @@ -239,9 +239,9 @@ void freeBackgroundIncrustList(backgroundIncrustStruct *pHead) { backgroundIncrustStruct *pNext = pCurrent->next; if (pCurrent->ptr) - free(pCurrent->ptr); + MemFree(pCurrent->ptr); - free(pCurrent); + MemFree(pCurrent); pCurrent = pNext; } @@ -292,10 +292,10 @@ void removeBackgroundIncrust(int overlay, int idx, backgroundIncrustStruct * pHe bx->prev = pCurrent->next; if (pCurrent->ptr) { - free(pCurrent->ptr); + MemFree(pCurrent->ptr); } - free(pCurrent); + MemFree(pCurrent); pCurrent = pNext; } else { diff --git a/engines/cruise/cell.cpp b/engines/cruise/cell.cpp index aeafed4f7a..d185ddae56 100644 --- a/engines/cruise/cell.cpp +++ b/engines/cruise/cell.cpp @@ -39,9 +39,9 @@ void resetPtr(cellStruct *ptr) { void freeMessageList(cellStruct *objPtr) { /* if (objPtr) { if (objPtr->next) - free(objPtr->next); + MemFree(objPtr->next); - free(objPtr); + MemFree(objPtr); } */ } @@ -143,7 +143,7 @@ void createTextObject(cellStruct *pObject, int overlayIdx, int messageIdx, int x var_2 = si; - pNewElement = (cellStruct *) malloc(sizeof(cellStruct)); + pNewElement = (cellStruct *) MemAlloc(sizeof(cellStruct)); memset(pNewElement, 0, sizeof(cellStruct)); pNewElement->next = pObject->next; @@ -221,7 +221,7 @@ void removeCell(cellStruct *objPtr, int ovlNumber, int objectIdx, int objType, i // TODO: complelty wrong //freeMessageList(si); - free(si); + MemFree(si); currentObj = dx; } else { diff --git a/engines/cruise/cruise.cpp b/engines/cruise/cruise.cpp index 50b1950c59..98ccc61355 100644 --- a/engines/cruise/cruise.cpp +++ b/engines/cruise/cruise.cpp @@ -69,11 +69,16 @@ CruiseEngine::CruiseEngine(OSystem * syst, const CRUISEGameDescription *gameDesc g_eventRec.registerRandomSource(_rnd, "cruise"); } +extern void listMemory(); + CruiseEngine::~CruiseEngine() { delete _debugger; delete _sound; freeSystem(); + + if (gDebugLevel > 0) + MemoryList(); } bool CruiseEngine::hasFeature(EngineFeature f) const { @@ -135,7 +140,7 @@ void CruiseEngine::deinitialise() { // Clear any backgrounds for (int i = 0; i < 8; ++i) { if (backgroundScreens[i]) { - free(backgroundScreens[i]); + MemFree(backgroundScreens[i]); backgroundScreens[i] = NULL; } } @@ -146,7 +151,7 @@ bool CruiseEngine::loadLanguageStrings() { // Give preference to a language file if (f.open("DELPHINE.LNG")) { - char *data = (char *)malloc(f.size()); + char *data = (char *)MemAlloc(f.size()); f.read(data, f.size()); char *ptr = data; diff --git a/engines/cruise/cruise_main.cpp b/engines/cruise/cruise_main.cpp index 5bde40b7ad..f36651f7e5 100644 --- a/engines/cruise/cruise_main.cpp +++ b/engines/cruise/cruise_main.cpp @@ -42,6 +42,61 @@ unsigned int timer = 0; gfxEntryStruct* linkedMsgList = NULL; +Common::List memList; + +void MemoryList() { + printf("Current list of un-freed memory blocks:\n"); + Common::List::iterator i; + for (i = memList.begin(); i != memList.end(); ++i) { + byte *v = *i; + printf("%s - %d\n", (const char *)(v - 68), *((int32 *)(v - 72))); + } +} + +void *MemoryAlloc(uint32 size, bool clearFlag, int32 lineNum, const char *fname) { + byte *result; + + if (gDebugLevel > 0) + result = (byte *)malloc(size); + else { + // Find the point after the final slash + const char *fnameP = fname + strlen(fname); + while ((fnameP > fname) && (*(fnameP - 1) != '/') && (*(fnameP - 1) != '\\')) + --fnameP; + + // Create the new memory block and add it to the memory list + byte *v = (byte *)malloc(size + 64 + 8); + *((int32 *) v) = lineNum; + strncpy((char *)v + 4, fnameP, 63); + *((char *)v + 4 + 63) = '\0'; + *((uint32 *) (v + 68)) = 0x41424344; + + // Add the block to the memory list + result = v + 64 + 8; + memList.push_back(result); + } + + if (clearFlag) + memset(result, 0, size); + + return result; +} + +void MemoryFree(void *v) { + if (!v) + return; + + if (gDebugLevel > 0) + free(v); + else { + byte *p = (byte *)v; + assert(*((uint32 *) (p - 4)) == 0x41424344); + + memList.remove(p); + free(p - 8 - 64); + } +} + void drawBlackSolidBoxSmall() { // gfxModuleData.drawSolidBox(64,100,256,117,0); drawSolidBox(64, 100, 256, 117, 0); @@ -139,7 +194,7 @@ void initBigVar3() { for (i = 0; i < NUM_FILE_ENTRIES; i++) { if (filesDatabase[i].subData.ptr) { - free(filesDatabase[i].subData.ptr); + MemFree(filesDatabase[i].subData.ptr); } filesDatabase[i].subData.ptr = NULL; @@ -337,7 +392,7 @@ int loadFileSub1(uint8 **ptr, const char *name, uint8 *ptr2) { delphineUnpack(unpackedBuffer, pakedBuffer, volumePtrToFileDescriptor[fileIdx].size); - free(pakedBuffer); + MemFree(pakedBuffer); } else { loadPackedFileToMem(fileIdx, unpackedBuffer); } @@ -354,7 +409,7 @@ void resetFileEntry(int32 entryNumber) { if (!filesDatabase[entryNumber].subData.ptr) return; - free(filesDatabase[entryNumber].subData.ptr); + MemFree(filesDatabase[entryNumber].subData.ptr); filesDatabase[entryNumber].subData.ptr = NULL; filesDatabase[entryNumber].subData.ptrMask = NULL; @@ -531,10 +586,10 @@ int removeFinishedScripts(scriptInstanceStruct *ptrHandle) { oldPtr->nextScriptPtr = ptr->nextScriptPtr; if (ptr->var6 && ptr->varA) { - // free(ptr->var6); + // MemFree(ptr->var6); } - free(ptr); + MemFree(ptr); ptr = oldPtr->nextScriptPtr; } else { @@ -701,7 +756,7 @@ void freeStuff2(void) { void *allocAndZero(int size) { void *ptr; - ptr = malloc(size); + ptr = MemAlloc(size); memset(ptr, 0, size); return ptr; @@ -1907,13 +1962,4 @@ void CruiseEngine::mainLoop(void) { } while (!playerDontAskQuit && quitValue2 && quitValue != 7); } -void *mallocAndZero(int32 size) { - void *ptr; - - ptr = malloc(size); - assert(ptr); - memset(ptr, 0, size); - return ptr; -} - } // End of namespace Cruise diff --git a/engines/cruise/cruise_main.h b/engines/cruise/cruise_main.h index 5f4d5c5c13..0b19ce64e5 100644 --- a/engines/cruise/cruise_main.h +++ b/engines/cruise/cruise_main.h @@ -92,7 +92,6 @@ int findHighColor(); ovlData3Struct *getOvlData3Entry(int32 scriptNumber, int32 param); ovlData3Struct *scriptFunc1Sub2(int32 scriptNumber, int32 param); void resetFileEntry(int32 entryNumber); -void *mallocAndZero(int32 size); uint8 *mainProc14(uint16 overlay, uint16 idx); void printInfoBlackBox(const char *string); void waitForPlayerInput(void); @@ -116,6 +115,14 @@ int removeFinishedScripts(scriptInstanceStruct *ptrHandle); void initBigVar3(void); void resetActorPtr(actorStruct *ptr); +void MemoryList(); +void *MemoryAlloc(uint32 size, bool clearFlag, int32 lineNum, const char *fname); +void MemoryFree(void *v); + +#define mallocAndZero(size) MemoryAlloc(size, true, __LINE__, __FILE__) +#define MemAlloc(size) MemoryAlloc(size, false, __LINE__, __FILE__) +#define MemFree(v) MemoryFree(v) + } // End of namespace Cruise #endif diff --git a/engines/cruise/ctp.cpp b/engines/cruise/ctp.cpp index aa2a6c7772..59f3cae942 100644 --- a/engines/cruise/ctp.cpp +++ b/engines/cruise/ctp.cpp @@ -228,7 +228,7 @@ int initCt(const char *ctpName) { } uint8* ptr = NULL; if (!loadFileSub1(&ptr, ctpName, 0)) { - free(ptr); + MemFree(ptr); return (-18); } @@ -239,7 +239,7 @@ int initCt(const char *ctpName) { dataPointer += 4; if (strcmp(fileType, "CTP ")) { - free(ptr); + MemFree(ptr); return (0); } @@ -312,7 +312,7 @@ int initCt(const char *ctpName) { walkboxZoom[i] = (int16)READ_BE_UINT16(dataPointer); dataPointer += 2; } - free(ptr); + MemFree(ptr); if (ctpName != currentCtpName) strcpy(currentCtpName, ctpName); diff --git a/engines/cruise/dataLoader.cpp b/engines/cruise/dataLoader.cpp index 78aa2cc62d..ec3c42ee46 100644 --- a/engines/cruise/dataLoader.cpp +++ b/engines/cruise/dataLoader.cpp @@ -58,7 +58,7 @@ void decodeGfxUnified(dataFileEntry *pCurrentFileEntry, int16 format) { error("Unkown gfx format %d", format); } - uint8 *buffer = (uint8 *)malloc(spriteSize); + uint8 *buffer = (uint8 *)MemAlloc(spriteSize); // Perform format specific decoding switch (format) { @@ -131,7 +131,7 @@ void decodeGfxUnified(dataFileEntry *pCurrentFileEntry, int16 format) { } } - free(pCurrentFileEntry->subData.ptr); + MemFree(pCurrentFileEntry->subData.ptr); pCurrentFileEntry->subData.ptr = buffer; } diff --git a/engines/cruise/font.cpp b/engines/cruise/font.cpp index c1afba3c45..bd9b2e2644 100644 --- a/engines/cruise/font.cpp +++ b/engines/cruise/font.cpp @@ -169,7 +169,7 @@ void initSystem(void) { } void freeSystem(void) { - free(_systemFNT); + MemFree(_systemFNT); } void bigEndianShortToNative(void *var) { @@ -349,7 +349,7 @@ gfxEntryStruct *renderText(int inRightBorder_X, const char *string) { (uint8 *) mallocAndZero(stringRenderBufferSize); resetBitmap(currentStrRenderBuffer, stringRenderBufferSize); - generatedGfxEntry = (gfxEntryStruct *) malloc(sizeof(gfxEntryStruct)); + generatedGfxEntry = (gfxEntryStruct *) MemAlloc(sizeof(gfxEntryStruct)); generatedGfxEntry->imagePtr = currentStrRenderBuffer; generatedGfxEntry->imageSize = stringRenderBufferSize / 2; generatedGfxEntry->fontIndex = fontFileIndex; @@ -430,10 +430,10 @@ gfxEntryStruct *renderText(int inRightBorder_X, const char *string) { void freeGfx(gfxEntryStruct *pGfx) { if (pGfx->imagePtr) { - free(pGfx->imagePtr); + MemFree(pGfx->imagePtr); } - free(pGfx); + MemFree(pGfx); } diff --git a/engines/cruise/function.cpp b/engines/cruise/function.cpp index 53549bff9e..8e112ef804 100644 --- a/engines/cruise/function.cpp +++ b/engines/cruise/function.cpp @@ -276,8 +276,8 @@ void freeObjectList(cellStruct *pListHead) { cellStruct *pNext = pCurrent->next; if (pCurrent->freeze == 0) { - free(pCurrent->gfxPtr); - free(pCurrent); + MemFree(pCurrent->gfxPtr); + MemFree(pCurrent); } var_2 = 1; @@ -938,7 +938,7 @@ int16 Op_RemoveBackground(void) { if (backgroundIdx > 0 && backgroundIdx < 8) { if (backgroundScreens[backgroundIdx]) - free(backgroundScreens[backgroundIdx]); + MemFree(backgroundScreens[backgroundIdx]); if (masterScreen == backgroundIdx) { masterScreen = 0; @@ -1106,7 +1106,7 @@ actorStruct *addAnimation(actorStruct * pHead, int overlay, int objIdx, int para return NULL; } - actorStruct *pNewElement = (actorStruct *) malloc(sizeof(actorStruct)); + actorStruct *pNewElement = (actorStruct *) MemAlloc(sizeof(actorStruct)); if (!pNewElement) return NULL; @@ -1180,7 +1180,7 @@ int removeAnimation(actorStruct * pHead, int overlay, int objIdx, int objType) { if (pl->pathId >= 0) freePerso(pl->pathId); - free(pl); + MemFree(pl); pl = pl4; } else { pl2 = pl; diff --git a/engines/cruise/mainDraw.cpp b/engines/cruise/mainDraw.cpp index 3f21a27831..2218c5bb7c 100644 --- a/engines/cruise/mainDraw.cpp +++ b/engines/cruise/mainDraw.cpp @@ -1222,7 +1222,7 @@ void drawSprite(int width, int height, cellStruct *currentObjPtr, const uint8 *d cellStruct* plWork = currentObjPtr; int workBufferSize = height * (width / 8); - unsigned char* workBuf = (unsigned char*)malloc(workBufferSize); + unsigned char* workBuf = (unsigned char*)MemAlloc(workBufferSize); memcpy(workBuf, dataBuf, workBufferSize); int numPasses = 0; @@ -1261,7 +1261,7 @@ void drawSprite(int width, int height, cellStruct *currentObjPtr, const uint8 *d } } - free(workBuf); + MemFree(workBuf); } #ifdef _DEBUG diff --git a/engines/cruise/menu.cpp b/engines/cruise/menu.cpp index c620a39b7d..c5600c5165 100644 --- a/engines/cruise/menu.cpp +++ b/engines/cruise/menu.cpp @@ -39,7 +39,7 @@ menuStruct *menuTable[8]; menuStruct *createMenu(int X, int Y, const char *menuName) { menuStruct *entry; - entry = (menuStruct *) malloc(sizeof(menuStruct)); + entry = (menuStruct *) MemAlloc(sizeof(menuStruct)); ASSERT(entry); entry->x = X - 160 / 2; @@ -329,7 +329,7 @@ void freeMenu(menuStruct *pMenu) { nextSub = pSub->pNext; - free(pSub); + MemFree(pSub); pSub = nextSub; } @@ -338,13 +338,13 @@ void freeMenu(menuStruct *pMenu) { freeGfx(pElement->gfx); } - free(pElement); + MemFree(pElement); pElement = next; } freeGfx(pMenu->gfx); - free(pMenu); + MemFree(pMenu); } } // End of namespace Cruise diff --git a/engines/cruise/overlay.cpp b/engines/cruise/overlay.cpp index 1f7d7302ba..21332c58c5 100644 --- a/engines/cruise/overlay.cpp +++ b/engines/cruise/overlay.cpp @@ -123,7 +123,7 @@ int loadOverlay(const char *scriptName) { delphineUnpack((uint8 *)unpackedBuffer, (const uint8 *)pakedBuffer, volumePtrToFileDescriptor[fileIdx].size); - free(pakedBuffer); + MemFree(pakedBuffer); } else { loadPackedFileToMem(fileIdx, (uint8 *) unpackedBuffer); } @@ -504,7 +504,7 @@ int loadOverlay(const char *scriptName) { delphineUnpack((uint8 *) unpackedBuffer, (const uint8 *)pakedBuffer, volumePtrToFileDescriptor[fileIdx].size); - free(pakedBuffer); + MemFree(pakedBuffer); } else { loadPackedFileToMem(fileIdx, (uint8 *) unpackedBuffer); } @@ -631,12 +631,12 @@ int releaseOverlay(const char *name) { return -4; /* if (overlayTable[overlayIdx].var1E) { - free(overlayTable[overlayIdx].var1E); + MemFree(overlayTable[overlayIdx].var1E); overlayTable[overlayIdx].var1E = NULL; } if (overlayTable[overlayIdx].var16) { - free(overlayTable[overlayIdx].var16); + MemFree(overlayTable[overlayIdx].var16); overlayTable[overlayIdx].var16 = NULL; } */ diff --git a/engines/cruise/perso.cpp b/engines/cruise/perso.cpp index 8bb4164d85..e6dee49c9e 100644 --- a/engines/cruise/perso.cpp +++ b/engines/cruise/perso.cpp @@ -34,7 +34,7 @@ int16 numPoly; void freePerso(int persoIdx) { if (persoTable[persoIdx]) { - free(persoTable[persoIdx]); + MemFree(persoTable[persoIdx]); persoTable[persoIdx] = NULL; } } diff --git a/engines/cruise/saveload.cpp b/engines/cruise/saveload.cpp index 7fcc5ecb1b..53d70044b4 100644 --- a/engines/cruise/saveload.cpp +++ b/engines/cruise/saveload.cpp @@ -470,7 +470,7 @@ static void syncIncrust(Common::Serializer &s) { if (t->saveSize) { if (s.isLoading()) - t->ptr = (byte *)malloc(t->saveSize); + t->ptr = (byte *)MemAlloc(t->saveSize); s.syncBytes(t->ptr, t->saveSize); } @@ -642,7 +642,7 @@ void resetPreload() { for (unsigned long int i = 0; i < 64; i++) { if (strlen(preloadData[i].name)) { if (preloadData[i].ptr) { - free(preloadData[i].ptr); + MemFree(preloadData[i].ptr); preloadData[i].ptr = NULL; } strcpy(preloadData[i].name, ""); @@ -850,7 +850,7 @@ Common::Error loadSavegameData(int saveGameIdx) { if (ovlRestoreData[j]._sBssSize) { if (ovlData->data4Ptr) { - free(ovlData->data4Ptr); + MemFree(ovlData->data4Ptr); } ovlData->data4Ptr = ovlRestoreData[j]._pBss; @@ -861,7 +861,7 @@ Common::Error loadSavegameData(int saveGameIdx) { if (ovlRestoreData[j]._sNumObj) { if (ovlData->arrayObjVar) { - free(ovlData->arrayObjVar); + MemFree(ovlData->arrayObjVar); } ovlData->arrayObjVar = ovlRestoreData[j]._pObj; diff --git a/engines/cruise/sound.cpp b/engines/cruise/sound.cpp index 7ca4246785..811cbd4523 100644 --- a/engines/cruise/sound.cpp +++ b/engines/cruise/sound.cpp @@ -237,7 +237,7 @@ byte *readBundleSoundFile(const char *name) { if (fileIdx < 0) return NULL; int unpackedSize = volumePtrToFileDescriptor[fileIdx].extSize + 2; - byte *data = (byte *)malloc(unpackedSize); + byte *data = (byte *)MemAlloc(unpackedSize); assert(data); if (volumePtrToFileDescriptor[fileIdx].size + 2 != unpackedSize) { @@ -249,7 +249,7 @@ byte *readBundleSoundFile(const char *name) { delphineUnpack(data, packedBuffer, volumePtrToFileDescriptor[fileIdx].size); - free(packedBuffer); + MemFree(packedBuffer); } else { loadPackedFileToMem(fileIdx, data); } @@ -747,10 +747,10 @@ void PCSoundFxPlayer::handlePattern(int channel, const byte *patternData) { void PCSoundFxPlayer::unload() { for (int i = 0; i < NUM_INSTRUMENTS; ++i) { - free(_instrumentsData[i]); + MemFree(_instrumentsData[i]); _instrumentsData[i] = NULL; } - free(_sfxData); + MemFree(_sfxData); _sfxData = NULL; _songPlayed = true; } diff --git a/engines/cruise/volume.cpp b/engines/cruise/volume.cpp index b83be1d6ee..58cd2fdb44 100644 --- a/engines/cruise/volume.cpp +++ b/engines/cruise/volume.cpp @@ -52,7 +52,7 @@ void loadPal(volumeDataStruct *entry) { numLoadedPal = PAL_file.readSint16BE(); fileData2 = PAL_file.readSint16BE(); - PAL_ptr = (uint8 *)malloc(numLoadedPal * fileData2); + PAL_ptr = (uint8 *)MemAlloc(numLoadedPal * fileData2); #endif } @@ -60,7 +60,7 @@ void closePal(void) { if (PAL_file.isOpen()) { PAL_file.close(); - free(PAL_ptr); + MemFree(PAL_ptr); PAL_ptr = NULL; numLoadedPal = 0; @@ -72,7 +72,7 @@ int closeBase(void) { if (currentVolumeFile.isOpen()) { currentVolumeFile.close(); - free(volumePtrToFileDescriptor); + MemFree(volumePtrToFileDescriptor); strcpy(currentBaseName, ""); } @@ -180,7 +180,7 @@ int32 findFileInDisksSub1(const char *fileName) { void freeDisk(void) { if (currentVolumeFile.isOpen()) { currentVolumeFile.close(); - free(volumePtrToFileDescriptor); + MemFree(volumePtrToFileDescriptor); } /* TODO @@ -316,7 +316,7 @@ int16 findFileInDisks(const char *name) { int closeCnf(void) { for (long int i = 0; i < numOfDisks; i++) { if (volumeData[i].ptr) { - free(volumeData[i].ptr); + MemFree(volumeData[i].ptr); volumeData[i].ptr = NULL; } } @@ -434,11 +434,11 @@ int16 readVolCnf(void) { if (fout.isOpen()) fout.write(uncompBuffer, buffer[j].extSize); - //free(uncompBuffer); + //MemFree(uncompBuffer); } - free(bufferLocal); + MemFree(bufferLocal); } fileHandle.close(); } -- cgit v1.2.3