[Scummvm-cvs-logs] SF.net SVN: scummvm:[44864] scummvm/branches/branch-1-0-0/engines/cruise
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Sat Oct 10 07:33:46 CEST 2009
Revision: 44864
http://scummvm.svn.sourceforge.net/scummvm/?rev=44864&view=rev
Author: dreammaster
Date: 2009-10-10 05:33:45 +0000 (Sat, 10 Oct 2009)
Log Message:
-----------
Backport of all the memory leak fixes
Modified Paths:
--------------
scummvm/branches/branch-1-0-0/engines/cruise/actor.cpp
scummvm/branches/branch-1-0-0/engines/cruise/background.cpp
scummvm/branches/branch-1-0-0/engines/cruise/backgroundIncrust.cpp
scummvm/branches/branch-1-0-0/engines/cruise/cell.cpp
scummvm/branches/branch-1-0-0/engines/cruise/cruise.cpp
scummvm/branches/branch-1-0-0/engines/cruise/cruise.h
scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.cpp
scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.h
scummvm/branches/branch-1-0-0/engines/cruise/ctp.cpp
scummvm/branches/branch-1-0-0/engines/cruise/dataLoader.cpp
scummvm/branches/branch-1-0-0/engines/cruise/detection.cpp
scummvm/branches/branch-1-0-0/engines/cruise/font.cpp
scummvm/branches/branch-1-0-0/engines/cruise/function.cpp
scummvm/branches/branch-1-0-0/engines/cruise/gfxModule.cpp
scummvm/branches/branch-1-0-0/engines/cruise/mainDraw.cpp
scummvm/branches/branch-1-0-0/engines/cruise/menu.cpp
scummvm/branches/branch-1-0-0/engines/cruise/object.cpp
scummvm/branches/branch-1-0-0/engines/cruise/overlay.cpp
scummvm/branches/branch-1-0-0/engines/cruise/overlay.h
scummvm/branches/branch-1-0-0/engines/cruise/perso.cpp
scummvm/branches/branch-1-0-0/engines/cruise/saveload.cpp
scummvm/branches/branch-1-0-0/engines/cruise/script.cpp
scummvm/branches/branch-1-0-0/engines/cruise/script.h
scummvm/branches/branch-1-0-0/engines/cruise/sound.cpp
scummvm/branches/branch-1-0-0/engines/cruise/staticres.cpp
scummvm/branches/branch-1-0-0/engines/cruise/staticres.h
scummvm/branches/branch-1-0-0/engines/cruise/volume.cpp
Modified: scummvm/branches/branch-1-0-0/engines/cruise/actor.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/actor.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/actor.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -599,7 +599,7 @@
return -1;
}
- perso = persoTable[i] = (persoStruct *) malloc(sizeof(persoStruct));
+ perso = persoTable[i] = (persoStruct *) MemAlloc(sizeof(persoStruct));
ptr = perso->solution[0];
@@ -663,7 +663,7 @@
return (-1);
}
- perso = persoTable[num] = (persoStruct *) malloc(sizeof(persoStruct));
+ perso = persoTable[num] = (persoStruct *) MemAlloc(sizeof(persoStruct));
perso->inc_jo1 = stepX;
perso->inc_jo2 = stepY;
Modified: scummvm/branches/branch-1-0-0/engines/cruise/background.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/background.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/background.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -107,7 +107,7 @@
ptrToFree = gfxModuleData.pPage10;
if (loadFileSub1(&ptrToFree, name, NULL) < 0) {
if (ptrToFree != gfxModuleData.pPage10)
- free(ptrToFree);
+ MemFree(ptrToFree);
return (-18);
}
@@ -208,6 +208,7 @@
loadCVT(&ptr2);
}
+ MemFree(ptrToFree);
if (name != backgroundTable[idx].name)
strcpy(backgroundTable[idx].name, name);
Modified: scummvm/branches/branch-1-0-0/engines/cruise/backgroundIncrust.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/backgroundIncrust.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/backgroundIncrust.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -49,7 +49,7 @@
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 @@
backgroundIncrustStruct *pNext = pCurrent->next;
if (pCurrent->ptr)
- free(pCurrent->ptr);
+ MemFree(pCurrent->ptr);
- free(pCurrent);
+ MemFree(pCurrent);
pCurrent = pNext;
}
@@ -292,10 +292,10 @@
bx->prev = pCurrent->next;
if (pCurrent->ptr) {
- free(pCurrent->ptr);
+ MemFree(pCurrent->ptr);
}
- free(pCurrent);
+ MemFree(pCurrent);
pCurrent = pNext;
} else {
Modified: scummvm/branches/branch-1-0-0/engines/cruise/cell.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/cell.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/cell.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -39,9 +39,9 @@
void freeMessageList(cellStruct *objPtr) {
/* if (objPtr) {
if (objPtr->next)
- free(objPtr->next);
+ MemFree(objPtr->next);
- free(objPtr);
+ MemFree(objPtr);
} */
}
@@ -143,7 +143,7 @@
var_2 = si;
- pNewElement = (cellStruct *) malloc(sizeof(cellStruct));
+ pNewElement = (cellStruct *) MemAlloc(sizeof(cellStruct));
memset(pNewElement, 0, sizeof(cellStruct));
pNewElement->next = pObject->next;
@@ -218,11 +218,11 @@
dx->prev = si->prev;
- // TODO: complelty wrong
- //freeMessageList(si);
+ // Free the entry
+ if (si->gfxPtr)
+ freeGfx(si->gfxPtr);
+ MemFree(si);
- free(si);
-
currentObj = dx;
} else {
currentObj = si->next;
@@ -339,4 +339,4 @@
}
}
-} // End of namespace Cruise
+} // End of namespace Cruise
\ No newline at end of file
Modified: scummvm/branches/branch-1-0-0/engines/cruise/cruise.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/cruise.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/cruise.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -65,9 +65,11 @@
_debugger = new Debugger();
_sound = new PCSound(_mixer, this);
- syst->getEventManager()->registerRandomSource(_rnd, "cruise");
+ g_system->getEventManager()->registerRandomSource(_rnd, "cruise");
}
+extern void listMemory();
+
CruiseEngine::~CruiseEngine() {
delete _debugger;
delete _sound;
@@ -86,8 +88,10 @@
// Initialize backend
initGraphics(320, 200, false);
- if (!loadLanguageStrings())
- return Common::kUnknownError;
+ if (!loadLanguageStrings()) {
+ error("Could not setup language data for your version");
+ return Common::kUnknownError; // for compilers that don't support NORETURN
+ }
initialize();
@@ -132,7 +136,7 @@
// Clear any backgrounds
for (int i = 0; i < 8; ++i) {
if (backgroundScreens[i]) {
- free(backgroundScreens[i]);
+ MemFree(backgroundScreens[i]);
backgroundScreens[i] = NULL;
}
}
@@ -143,7 +147,7 @@
// 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;
@@ -161,19 +165,23 @@
}
f.close();
+ MemFree(data);
} else {
// Try and use one of the pre-defined language lists
const char **p = NULL;
switch (getLanguage()) {
- case Common::EN_ANY:
- p = englishLanguageStrings;
- break;
- case Common::FR_FRA:
- p = frenchLanguageStrings;
- break;
- default:
- return false;
+ case Common::EN_ANY:
+ p = englishLanguageStrings;
+ break;
+ case Common::FR_FRA:
+ p = frenchLanguageStrings;
+ break;
+ case Common::DE_DEU:
+ p = germanLanguageStrings;
+ break;
+ default:
+ return false;
}
// Load in the located language set
Modified: scummvm/branches/branch-1-0-0/engines/cruise/cruise.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/cruise.h 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/cruise.h 2009-10-10 05:33:45 UTC (rev 44864)
@@ -83,6 +83,7 @@
virtual bool hasFeature(EngineFeature f) const;
int getGameType() const;
+ const char *getGameId() const;
uint32 getFeatures() const;
Common::Language getLanguage() const;
Common::Platform getPlatform() const;
Modified: scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -42,6 +42,14 @@
gfxEntryStruct* linkedMsgList = NULL;
+void *MemoryAlloc(uint32 size, bool clearFlag) {
+ byte *result = (byte *)malloc(size);
+ if (clearFlag)
+ memset(result, 0, size);
+
+ return result;
+}
+
void drawBlackSolidBoxSmall() {
// gfxModuleData.drawSolidBox(64,100,256,117,0);
drawSolidBox(64, 100, 256, 117, 0);
@@ -139,7 +147,7 @@
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;
@@ -156,6 +164,17 @@
}
void resetActorPtr(actorStruct *ptr) {
+ actorStruct *p = ptr;
+
+ if (p->next) {
+ p = p->next;
+ do {
+ actorStruct *pNext = p->next;
+ MemFree(p);
+ p = pNext;
+ } while (p);
+ }
+
ptr->next = NULL;
ptr->prev = NULL;
}
@@ -317,8 +336,7 @@
unpackedSize = loadFileVar1 = volumePtrToFileDescriptor[fileIdx].extSize + 2;
- // TODO: here, can unpack in gfx module buffer
- unpackedBuffer = (uint8 *) mallocAndZero(unpackedSize);
+ unpackedBuffer = (uint8 *)mallocAndZero(unpackedSize);
if (!unpackedBuffer) {
return (-2);
@@ -337,7 +355,7 @@
delphineUnpack(unpackedBuffer, pakedBuffer, volumePtrToFileDescriptor[fileIdx].size);
- free(pakedBuffer);
+ MemFree(pakedBuffer);
} else {
loadPackedFileToMem(fileIdx, unpackedBuffer);
}
@@ -354,7 +372,9 @@
if (!filesDatabase[entryNumber].subData.ptr)
return;
- free(filesDatabase[entryNumber].subData.ptr);
+ MemFree(filesDatabase[entryNumber].subData.ptr);
+ if (filesDatabase[entryNumber].subData.ptrMask)
+ MemFree(filesDatabase[entryNumber].subData.ptrMask);
filesDatabase[entryNumber].subData.ptr = NULL;
filesDatabase[entryNumber].subData.ptrMask = NULL;
@@ -366,7 +386,6 @@
filesDatabase[entryNumber].subData.resourceType = 0;
filesDatabase[entryNumber].subData.compression = 0;
filesDatabase[entryNumber].subData.name[0] = 0;
-
}
uint8 *mainProc14(uint16 overlay, uint16 idx) {
@@ -530,11 +549,10 @@
if (ptr->scriptNumber == -1) {
oldPtr->nextScriptPtr = ptr->nextScriptPtr;
- if (ptr->var6 && ptr->varA) {
- // free(ptr->var6);
- }
+ if (ptr->data)
+ MemFree(ptr->data);
- free(ptr);
+ MemFree(ptr);
ptr = oldPtr->nextScriptPtr;
} else {
@@ -546,6 +564,26 @@
return (0);
}
+void removeAllScripts(scriptInstanceStruct *ptrHandle) {
+ scriptInstanceStruct *ptr = ptrHandle->nextScriptPtr; // can't destruct the head
+ scriptInstanceStruct *oldPtr = ptrHandle;
+
+ if (!ptr)
+ return;
+
+ do {
+ oldPtr->nextScriptPtr = ptr->nextScriptPtr;
+
+ if (ptr->data)
+ MemFree(ptr->data);
+
+ MemFree(ptr);
+
+ ptr = oldPtr->nextScriptPtr;
+ } while (ptr);
+}
+
+
bool testMask(int x, int y, unsigned char* pData, int stride) {
unsigned char* ptr = y * stride + x / 8 + pData;
@@ -701,7 +739,7 @@
void *allocAndZero(int size) {
void *ptr;
- ptr = malloc(size);
+ ptr = MemAlloc(size);
memset(ptr, 0, size);
return ptr;
@@ -1905,15 +1943,17 @@
}
} while (!playerDontAskQuit && quitValue2 && quitValue != 7);
-}
-void *mallocAndZero(int32 size) {
- void *ptr;
-
- ptr = malloc(size);
- assert(ptr);
- memset(ptr, 0, size);
- return ptr;
+ // Free data
+ removeAllScripts(&relHead);
+ removeAllScripts(&procHead);
+ resetActorPtr(&actorHead);
+ freeOverlayTable();
+ closeCnf();
+ closeBase();
+ resetFileEntryRange(0, NUM_FILE_ENTRIES);
+ freeObjectList(&cellHead);
+ freeBackgroundIncrustList(&backgroundIncrustHead);
}
} // End of namespace Cruise
Modified: scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.h 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/cruise_main.h 2009-10-10 05:33:45 UTC (rev 44864)
@@ -92,7 +92,6 @@
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);
@@ -115,7 +114,16 @@
int removeFinishedScripts(scriptInstanceStruct *ptrHandle);
void initBigVar3(void);
void resetActorPtr(actorStruct *ptr);
+void removeAllScripts(scriptInstanceStruct *ptrHandle);
+void MemoryList();
+void *MemoryAlloc(uint32 size, bool clearFlag);
+void MemoryFree(void *v);
+
+#define mallocAndZero(size) MemoryAlloc(size, true)
+#define MemAlloc(size) MemoryAlloc(size, false)
+#define MemFree(v) free(v)
+
} // End of namespace Cruise
#endif
Modified: scummvm/branches/branch-1-0-0/engines/cruise/ctp.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/ctp.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/ctp.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -228,7 +228,7 @@
}
uint8* ptr = NULL;
if (!loadFileSub1(&ptr, ctpName, 0)) {
- free(ptr);
+ MemFree(ptr);
return (-18);
}
@@ -239,7 +239,7 @@
dataPointer += 4;
if (strcmp(fileType, "CTP ")) {
- free(ptr);
+ MemFree(ptr);
return (0);
}
@@ -312,7 +312,7 @@
walkboxZoom[i] = (int16)READ_BE_UINT16(dataPointer);
dataPointer += 2;
}
- free(ptr);
+ MemFree(ptr);
if (ctpName != currentCtpName)
strcpy(currentCtpName, ctpName);
Modified: scummvm/branches/branch-1-0-0/engines/cruise/dataLoader.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/dataLoader.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/dataLoader.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -58,7 +58,7 @@
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 @@
}
}
- free(pCurrentFileEntry->subData.ptr);
+ MemFree(pCurrentFileEntry->subData.ptr);
pCurrentFileEntry->subData.ptr = buffer;
}
@@ -167,12 +167,14 @@
}
int createResFileEntry(int width, int height, int size, int resType) {
+ error("Executing untested createResFileEntry");
+ return 0; // for compilers that don't support NORETURN
+
+#if 0
int i;
int entryNumber;
int div = 0;
- error("Executing untested createResFileEntry");
-
for (i = 0; i < NUM_FILE_ENTRIES; i++) {
if (!filesDatabase[i].subData.ptr)
break;
@@ -206,6 +208,7 @@
filesDatabase[entryNumber].subData.index = -1;
return entryNumber;
+#endif
}
fileTypeEnum getFileType(const char *name) {
@@ -304,6 +307,8 @@
error("Unknown fileType in loadFileRange");
}
+ MemFree(ptr);
+
return 0;
}
@@ -346,6 +351,8 @@
error("Unknown fileType in loadFullBundle");
}
+ MemFree(ptr);
+
return 0;
}
Modified: scummvm/branches/branch-1-0-0/engines/cruise/detection.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/detection.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/detection.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -26,7 +26,7 @@
#include "base/plugins.h"
-
+#include "common/savefile.h"
#include "engines/advancedDetector.h"
#include "cruise/cruise.h"
@@ -41,6 +41,10 @@
uint32 features;
};
+const char *CruiseEngine::getGameId() const {
+ return _gameDescription->desc.gameid;
+}
+
int CruiseEngine::getGameType() const {
return _gameDescription->gameType;
}
@@ -148,6 +152,19 @@
{
{
"cruise",
+ 0,
+ AD_ENTRY1("D1", "70f42a21cc257b01d58667853335f4f1"),
+ Common::DE_DEU,
+ Common::kPlatformAmiga,
+ ADGF_NO_FLAGS,
+ GUIO_NONE
+ },
+ GType_CRUISE,
+ 0,
+ },
+ {
+ {
+ "cruise",
"256 colors",
AD_ENTRY1("D1", "e19a4ab2e24a69087e4ea994a5506231"),
Common::IT_ITA,
Modified: scummvm/branches/branch-1-0-0/engines/cruise/font.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/font.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/font.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -169,7 +169,7 @@
}
void freeSystem(void) {
- free(_systemFNT);
+ MemFree(_systemFNT);
}
void bigEndianShortToNative(void *var) {
@@ -349,7 +349,7 @@
(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,11 +430,11 @@
void freeGfx(gfxEntryStruct *pGfx) {
if (pGfx->imagePtr) {
- free(pGfx->imagePtr);
+ MemFree(pGfx->imagePtr);
}
- free(pGfx);
+ MemFree(pGfx);
}
-} // End of namespace Cruise
+} // End of namespace Cruise
\ No newline at end of file
Modified: scummvm/branches/branch-1-0-0/engines/cruise/function.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/function.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/function.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -276,8 +276,9 @@
cellStruct *pNext = pCurrent->next;
if (pCurrent->freeze == 0) {
- free(pCurrent->gfxPtr);
- free(pCurrent);
+ if (pCurrent->gfxPtr)
+ freeGfx(pCurrent->gfxPtr);
+ MemFree(pCurrent);
}
var_2 = 1;
@@ -938,7 +939,7 @@
if (backgroundIdx > 0 && backgroundIdx < 8) {
if (backgroundScreens[backgroundIdx])
- free(backgroundScreens[backgroundIdx]);
+ MemFree(backgroundScreens[backgroundIdx]);
if (masterScreen == backgroundIdx) {
masterScreen = 0;
@@ -1106,7 +1107,7 @@
return NULL;
}
- actorStruct *pNewElement = (actorStruct *) malloc(sizeof(actorStruct));
+ actorStruct *pNewElement = (actorStruct *) MemAlloc(sizeof(actorStruct));
if (!pNewElement)
return NULL;
@@ -1180,7 +1181,7 @@
if (pl->pathId >= 0)
freePerso(pl->pathId);
- free(pl);
+ MemFree(pl);
pl = pl4;
} else {
pl2 = pl;
Modified: scummvm/branches/branch-1-0-0/engines/cruise/gfxModule.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/gfxModule.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/gfxModule.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -26,6 +26,8 @@
#include "common/system.h"
#include "common/endian.h"
+#include "common/list.h"
+#include "common/rect.h"
#include "cruise/cruise.h"
#include "cruise/cruise_main.h"
@@ -45,6 +47,8 @@
RectList _dirtyRects;
RectList _priorFrameRects;
+bool _dirtyRectScreen = false;
+
gfxModuleDataStruct gfxModuleData = {
0, // use Tandy
0, // use EGA
Modified: scummvm/branches/branch-1-0-0/engines/cruise/mainDraw.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/mainDraw.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/mainDraw.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -1222,7 +1222,7 @@
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 @@
}
}
- free(workBuf);
+ MemFree(workBuf);
}
#ifdef _DEBUG
Modified: scummvm/branches/branch-1-0-0/engines/cruise/menu.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/menu.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/menu.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -27,14 +27,19 @@
#include "cruise/cruise_main.h"
#include "cruise/staticres.h"
+#include "engines/metaengine.h"
+#include "gui/saveload.h"
+
namespace Cruise {
+extern int currentMouseButton;
+
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;
@@ -202,6 +207,38 @@
return -1;
}
+static void handleSaveLoad(bool saveFlag) {
+ const EnginePlugin *plugin = 0;
+ EngineMan.findGame(_vm->getGameId(), &plugin);
+ GUI::SaveLoadChooser *dialog;
+ if (saveFlag)
+ dialog = new GUI::SaveLoadChooser("Save game:", "Save");
+ else
+ dialog = new GUI::SaveLoadChooser("Load game:", "Load");
+
+ dialog->setSaveMode(saveFlag);
+ int slot = dialog->runModal(plugin, ConfMan.getActiveDomainName());
+
+ if (slot >= 0) {
+ if (!saveFlag)
+ _vm->loadGameState(slot);
+ else {
+ Common::String result(dialog->getResultString());
+ if (result.empty()) {
+ // If the user was lazy and entered no save name, come up with a default name.
+ char buf[20];
+ snprintf(buf, 20, "Save %d", slot + 1);
+
+ _vm->saveGameState(slot, buf);
+ } else {
+ _vm->saveGameState(slot, result.c_str());
+ }
+ }
+ }
+
+ delete dialog;
+}
+
int playerMenu(int menuX, int menuY) {
int retourMenu;
//int restartGame = 0;
@@ -251,15 +288,14 @@
freeMenu(menuTable[0]);
menuTable[0] = NULL;
+ currentMouseButton = 0;
switch (retourMenu) {
case 3: // select save drive
break;
case 4: // save
- saveSavegameData(0, "Default Save");
- break;
case 5: // load
- loadSavegameData(0);
+ handleSaveLoad(retourMenu == 4);
break;
case 6: // restart
_vm->sound().fadeOutMusic();
@@ -293,7 +329,7 @@
nextSub = pSub->pNext;
- free(pSub);
+ MemFree(pSub);
pSub = nextSub;
}
@@ -302,13 +338,13 @@
freeGfx(pElement->gfx);
}
- free(pElement);
+ MemFree(pElement);
pElement = next;
}
freeGfx(pMenu->gfx);
- free(pMenu);
+ MemFree(pMenu);
}
-} // End of namespace Cruise
+} // End of namespace Cruise
\ No newline at end of file
Modified: scummvm/branches/branch-1-0-0/engines/cruise/object.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/object.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/object.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -118,7 +118,6 @@
if (!ptr) {
return;
- ASSERT(0);
}
//overlayTable[param1].ovlData
Modified: scummvm/branches/branch-1-0-0/engines/cruise/overlay.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/overlay.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/overlay.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -46,6 +46,84 @@
numOfLoadedOverlay = 1;
}
+void freeOverlayTable() {
+ for (int i = 0; i < 90; i++) {
+ if (overlayTable[i].alreadyLoaded)
+ freeOverlay(i);
+ }
+}
+
+int freeOverlay(int overlayIdx) {
+ ovlDataStruct *ovlDataPtr;
+ int i;
+
+ if (overlayTable[overlayIdx].alreadyLoaded == 0)
+ return -4;
+
+ overlayTable[overlayIdx].alreadyLoaded = 0;
+
+ ovlDataPtr = overlayTable[overlayIdx].ovlData;
+
+ if (!ovlDataPtr)
+ return -4;
+
+
+ /*
+ if (overlayTable[overlayIdx].var1E) {
+ MemFree(overlayTable[overlayIdx].var1E);
+ overlayTable[overlayIdx].var1E = NULL;
+ }
+
+ if (overlayTable[overlayIdx].var16) {
+ MemFree(overlayTable[overlayIdx].var16);
+ overlayTable[overlayIdx].var16 = NULL;
+ } */
+
+ removeScript(overlayIdx, -1, &procHead);
+ removeScript(overlayIdx, -1, &procHead);
+
+ removeScript(overlayIdx, -1, &relHead);
+ removeScript(overlayIdx, -1, &relHead);
+
+ if (ovlDataPtr->stringTable) {
+ for (i = 0; i < ovlDataPtr->numStrings; ++i)
+ MemFree(ovlDataPtr->stringTable[i].string);
+ MemFree(ovlDataPtr->stringTable);
+ }
+ if (ovlDataPtr->arrayProc) {
+ ovlData3Struct *tempPtr = ovlDataPtr->arrayProc;
+ for (i = 0; i < ovlDataPtr->numProc; ++i, ++tempPtr)
+ MemFree(tempPtr->dataPtr);
+ MemFree(ovlDataPtr->arrayProc);
+ }
+ if (ovlDataPtr->ptr1) {
+ ovlData3Struct *tempPtr = (ovlData3Struct *)ovlDataPtr->ptr1;
+ for (i = 0; i < ovlDataPtr->numRel; ++i, ++tempPtr)
+ MemFree(tempPtr->dataPtr);
+ MemFree(ovlDataPtr->ptr1);
+ }
+
+ MemFree(ovlDataPtr->arraySymbGlob);
+ MemFree(ovlDataPtr->arrayNameSymbGlob);
+ MemFree(ovlDataPtr->data4Ptr);
+ MemFree(ovlDataPtr->arrayMsgRelHeader);
+ MemFree(ovlDataPtr->ptr8);
+ MemFree(ovlDataPtr->arrayObject);
+ MemFree(ovlDataPtr->arrayObjVar);
+ MemFree(ovlDataPtr->arrayStates);
+ MemFree(ovlDataPtr->nameVerbGlob);
+ MemFree(ovlDataPtr->arrayNameObj);
+ MemFree(ovlDataPtr->arrayRelocGlob);
+ MemFree(ovlDataPtr->arrayNameRelocGlob);
+
+ MemFree(ovlDataPtr);
+ overlayTable[overlayIdx].ovlData = NULL;
+
+ debug(1, "freeOverlay: finish !");
+
+ return 0;
+}
+
int loadOverlay(const char *scriptName) {
int newNumberOfScript;
bool scriptNotLoadedBefore;
@@ -107,8 +185,9 @@
unpackedSize = volumePtrToFileDescriptor[fileIdx].extSize + 2;
- // TODO: here, can unpack in gfx module buffer
- unpackedBuffer = (byte *)mallocAndZero(unpackedSize);
+ // This memory block will be later passed to a MemoryReadStream, which will dispose of it
+ unpackedBuffer = (byte *)malloc(unpackedSize);
+ memset(unpackedBuffer, 0, unpackedSize);
if (!unpackedBuffer) {
return (-2);
@@ -123,14 +202,15 @@
delphineUnpack((uint8 *)unpackedBuffer, (const uint8 *)pakedBuffer, volumePtrToFileDescriptor[fileIdx].size);
- free(pakedBuffer);
+ MemFree(pakedBuffer);
} else {
loadPackedFileToMem(fileIdx, (uint8 *) unpackedBuffer);
}
debug(1, "OVL loading done...");
- Common::MemoryReadStream s(unpackedBuffer, unpackedSize);
+ Common::MemoryReadStream s(unpackedBuffer, unpackedSize, true);
+ unpackedBuffer = NULL;
ovlData = overlayTable[scriptIdx].ovlData;
@@ -486,8 +566,9 @@
unpackedSize = volumePtrToFileDescriptor[fileIdx].extSize + 2;
- // TODO: here, can unpack in gfx module buffer
- unpackedBuffer = (byte *)mallocAndZero(unpackedSize);
+ // This memory block will be later passed to a MemoryReadStream, which will dispose of it
+ unpackedBuffer = (byte *)malloc(unpackedSize);
+ memset(unpackedBuffer, 0, unpackedSize);
if (!unpackedBuffer) {
return (-2);
@@ -504,12 +585,13 @@
delphineUnpack((uint8 *) unpackedBuffer, (const uint8 *)pakedBuffer, volumePtrToFileDescriptor[fileIdx].size);
- free(pakedBuffer);
+ MemFree(pakedBuffer);
} else {
loadPackedFileToMem(fileIdx, (uint8 *) unpackedBuffer);
}
- Common::MemoryReadStream s2(unpackedBuffer, unpackedSize);
+ Common::MemoryReadStream s2(unpackedBuffer, unpackedSize, true);
+ unpackedBuffer = NULL;
ovlData->specialString1Length = s2.readUint16BE();
if (ovlData->specialString1Length) {
@@ -612,43 +694,12 @@
}
int releaseOverlay(const char *name) {
- int overlayIdx;
- ovlDataStruct *ovlDataPtr;
+ int overlayIdx = findOverlayByName(name);
- overlayIdx = findOverlayByName(name);
-
if (overlayIdx == -4)
return -4;
- if (overlayTable[overlayIdx].alreadyLoaded == 0)
- return -4;
-
- overlayTable[overlayIdx].alreadyLoaded = 0;
-
- ovlDataPtr = overlayTable[overlayIdx].ovlData;
-
- if (!ovlDataPtr)
- return -4;
- /*
- if (overlayTable[overlayIdx].var1E) {
- free(overlayTable[overlayIdx].var1E);
- overlayTable[overlayIdx].var1E = NULL;
- }
-
- if (overlayTable[overlayIdx].var16) {
- free(overlayTable[overlayIdx].var16);
- overlayTable[overlayIdx].var16 = NULL;
- } */
-
- removeScript(overlayIdx, -1, &procHead);
- removeScript(overlayIdx, -1, &procHead);
-
- removeScript(overlayIdx, -1, &relHead);
- removeScript(overlayIdx, -1, &relHead);
-
- debug(1, "releaseOverlay: finish !");
-
- return 0;
+ return freeOverlay(overlayIdx);
}
int32 findOverlayByName2(const char *name) {
Modified: scummvm/branches/branch-1-0-0/engines/cruise/overlay.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/overlay.h 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/overlay.h 2009-10-10 05:33:45 UTC (rev 44864)
@@ -184,6 +184,8 @@
int32 findOverlayByName2(const char * name);
int findOverlayByName(const char *overlayName);
int releaseOverlay(const char *name);
+int freeOverlay(int overlayIdx);
+void freeOverlayTable();
} // End of namespace Cruise
Modified: scummvm/branches/branch-1-0-0/engines/cruise/perso.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/perso.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/perso.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -34,7 +34,7 @@
void freePerso(int persoIdx) {
if (persoTable[persoIdx]) {
- free(persoTable[persoIdx]);
+ MemFree(persoTable[persoIdx]);
persoTable[persoIdx] = NULL;
}
}
Modified: scummvm/branches/branch-1-0-0/engines/cruise/saveload.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/saveload.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/saveload.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -332,7 +332,7 @@
s.syncAsSint16LE(ptr->ccr);
s.syncAsSint16LE(ptr->scriptOffset);
s.syncAsUint32LE(dummyLong);
- s.syncAsSint16LE(ptr->varA);
+ s.syncAsSint16LE(ptr->dataSize);
s.syncAsSint16LE(ptr->scriptNumber);
s.syncAsSint16LE(ptr->overlayNumber);
s.syncAsSint16LE(ptr->sysKey);
@@ -342,12 +342,12 @@
s.syncAsSint16LE(ptr->var18);
s.syncAsSint16LE(ptr->var1A);
- s.syncAsSint16LE(ptr->varA);
+ s.syncAsSint16LE(ptr->dataSize);
- if (ptr->varA) {
+ if (ptr->dataSize) {
if (s.isLoading())
- ptr->var6 = (byte *)mallocAndZero(ptr->varA);
- s.syncBytes(ptr->var6, ptr->varA);
+ ptr->data = (byte *)mallocAndZero(ptr->dataSize);
+ s.syncBytes(ptr->data, ptr->dataSize);
}
if (s.isLoading()) {
@@ -470,7 +470,7 @@
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 @@
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, "");
@@ -665,6 +665,7 @@
resetPreload();
freeCTP();
+ freeBackgroundIncrustList(&backgroundIncrustHead);
freezeCell(&cellHead, -1, -1, -1, -1, -1, 0);
// TODO: unfreeze anims
@@ -672,6 +673,8 @@
freeObjectList(&cellHead);
removeAnimation(&actorHead, -1, -1, -1);
+ removeAllScripts(&relHead);
+ removeAllScripts(&procHead);
changeScriptParamInList(-1, -1, &procHead, -1, 0);
removeFinishedScripts(&procHead);
@@ -850,7 +853,7 @@
if (ovlRestoreData[j]._sBssSize) {
if (ovlData->data4Ptr) {
- free(ovlData->data4Ptr);
+ MemFree(ovlData->data4Ptr);
}
ovlData->data4Ptr = ovlRestoreData[j]._pBss;
@@ -861,7 +864,7 @@
if (ovlRestoreData[j]._sNumObj) {
if (ovlData->arrayObjVar) {
- free(ovlData->arrayObjVar);
+ MemFree(ovlData->arrayObjVar);
}
ovlData->arrayObjVar = ovlRestoreData[j]._pObj;
Modified: scummvm/branches/branch-1-0-0/engines/cruise/script.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/script.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/script.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -97,15 +97,13 @@
if (size == 1) {
address += index;
pushVar((int16)READ_BE_UINT16(address));
- return (0);
+ return 0;
} else if (size == 2) {
pushVar(*address);
- return (0);
+ return 0;
} else {
error("Unsupported code in opcodeType0 case 1");
}
-
- return (0);
}
case 2: {
int16 var_16;
@@ -122,15 +120,11 @@
}
pushVar(var_16);
- return (0);
-
- break;
+ return 0;
}
default:
error("Unsupported type %d in opcodeType0", currentScriptOpcodeType);
}
-
- return 0;
}
// save opcode
@@ -546,13 +540,13 @@
if (!tempPtr)
return (NULL);
- tempPtr->var6 = NULL;
+ tempPtr->data = NULL;
if (var_C) {
- tempPtr->var6 = (uint8 *) mallocAndZero(var_C);
+ tempPtr->data = (uint8 *) mallocAndZero(var_C);
}
- tempPtr->varA = var_C;
+ tempPtr->dataSize = var_C;
tempPtr->nextScriptPtr = NULL;
tempPtr->scriptOffset = 0;
@@ -574,7 +568,7 @@
oldTail->nextScriptPtr = tempPtr; // attache the new node to the list
- return (tempPtr->var6);
+ return (tempPtr->data);
}
int executeScripts(scriptInstanceStruct *ptr) {
@@ -614,7 +608,7 @@
currentData3DataPtr = ptr2->dataPtr;
- scriptDataPtrTable[1] = (uint8 *) ptr->var6;
+ scriptDataPtrTable[1] = (uint8 *) ptr->data;
scriptDataPtrTable[2] = getDataFromData3(ptr2, 1);
scriptDataPtrTable[5] = ovlData->data4Ptr; // free strings
scriptDataPtrTable[6] = ovlData->ptr8;
Modified: scummvm/branches/branch-1-0-0/engines/cruise/script.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/script.h 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/script.h 2009-10-10 05:33:45 UTC (rev 44864)
@@ -39,8 +39,8 @@
struct scriptInstanceStruct *nextScriptPtr;
int16 ccr;
int16 scriptOffset;
- uint8 *var6;
- int16 varA;
+ uint8 *data;
+ int16 dataSize;
int16 scriptNumber;
int16 overlayNumber;
int16 sysKey;
Modified: scummvm/branches/branch-1-0-0/engines/cruise/sound.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/sound.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/sound.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -237,7 +237,7 @@
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 @@
delphineUnpack(data, packedBuffer, volumePtrToFileDescriptor[fileIdx].size);
- free(packedBuffer);
+ MemFree(packedBuffer);
} else {
loadPackedFileToMem(fileIdx, data);
}
@@ -601,9 +601,7 @@
PCSoundFxPlayer::~PCSoundFxPlayer() {
_driver->setUpdateCallback(NULL, NULL);
- if (_playing) {
- stop();
- }
+ stop();
}
bool PCSoundFxPlayer::load(const char *song) {
@@ -674,8 +672,8 @@
_driver->stopChannel(i);
}
_driver->stopAll();
- unload();
}
+ unload();
}
void PCSoundFxPlayer::fadeOut() {
@@ -747,10 +745,10 @@
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;
}
Modified: scummvm/branches/branch-1-0-0/engines/cruise/staticres.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/staticres.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/staticres.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -317,5 +317,11 @@
"", NULL, NULL, NULL, NULL, "Inventaire", "Parler de...", "Menu Joueur", NULL,
"Sauvegarde", "Chargement", "Recommencer le jeu", "Quitter"
};
+// The original Amiga version does use "Speilermen\xFC" instead of "Spielermen\xFC", if we want to correct
+// this typo, we can easily do so.
+const char *germanLanguageStrings[13] = {
+ " ", NULL, NULL, NULL, NULL, "Inventar", "Sprechen ""\xFC""ber", "Speilermen\xFC", "Speicherlaufwerk",
+ "Speichern", "Laden", "Neu beginnen", "Ende"
+};
} // End of namespace Cruise
Modified: scummvm/branches/branch-1-0-0/engines/cruise/staticres.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/staticres.h 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/staticres.h 2009-10-10 05:33:45 UTC (rev 44864)
@@ -59,6 +59,7 @@
// Language strings
extern const char *englishLanguageStrings[13];
extern const char *frenchLanguageStrings[13];
+extern const char *germanLanguageStrings[13];
} // End of namespace Cruise
Modified: scummvm/branches/branch-1-0-0/engines/cruise/volume.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/cruise/volume.cpp 2009-10-10 05:08:56 UTC (rev 44863)
+++ scummvm/branches/branch-1-0-0/engines/cruise/volume.cpp 2009-10-10 05:33:45 UTC (rev 44864)
@@ -36,11 +36,10 @@
char currentBaseName[15] = "";
void loadPal(volumeDataStruct *entry) {
+ // This code isn't currently being used
+#if 0
char name[20];
- // This code isn't currently being used, so return
- return;
-
if (PAL_file.isOpen())
PAL_file.close();
@@ -53,14 +52,15 @@
numLoadedPal = PAL_file.readSint16BE();
fileData2 = PAL_file.readSint16BE();
- PAL_ptr = (uint8 *)malloc(numLoadedPal * fileData2);
+ PAL_ptr = (uint8 *)MemAlloc(numLoadedPal * fileData2);
+#endif
}
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 @@
if (currentVolumeFile.isOpen()) {
currentVolumeFile.close();
- free(volumePtrToFileDescriptor);
+ MemFree(volumePtrToFileDescriptor);
strcpy(currentBaseName, "");
}
@@ -180,7 +180,7 @@
void freeDisk(void) {
if (currentVolumeFile.isOpen()) {
currentVolumeFile.close();
- free(volumePtrToFileDescriptor);
+ MemFree(volumePtrToFileDescriptor);
}
/* TODO
@@ -316,7 +316,7 @@
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 @@
if (fout.isOpen())
fout.write(uncompBuffer, buffer[j].extSize);
- //free(uncompBuffer);
+ //MemFree(uncompBuffer);
}
- free(bufferLocal);
+ MemFree(bufferLocal);
}
fileHandle.close();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list