[Scummvm-git-logs] scummvm master -> f7552d1cd13f72ba864a464568fd362ca0216b84
mgerhardy
martin.gerhardy at gmail.com
Tue Nov 17 19:59:52 UTC 2020
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
2a42cae807 TWINE: fixed double free
178bfb577d TWINE: removed unused return value
d88dd72705 TWINE: make looping sound
f7552d1cd1 TWINE: fixed more memory leaks
Commit: 2a42cae80734596b12319a6c72e225c3a0306ff6
https://github.com/scummvm/scummvm/commit/2a42cae80734596b12319a6c72e225c3a0306ff6
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-11-17T20:59:28+01:00
Commit Message:
TWINE: fixed double free
Changed paths:
engines/twine/actor.cpp
diff --git a/engines/twine/actor.cpp b/engines/twine/actor.cpp
index 82bf875696..f605a5d9cf 100644
--- a/engines/twine/actor.cpp
+++ b/engines/twine/actor.cpp
@@ -211,9 +211,6 @@ int32 Actor::initBody(int32 bodyIdx, int32 actorIdx, ActorBoundingBox &actorBoun
if (!(bodyIndex & 0x8000)) {
index = currentPositionInBodyPtrTab;
currentPositionInBodyPtrTab++;
- if (bodyTable[index]) {
- free(bodyTable[index]);
- }
bodyTableSize[index] = HQR::getAllocEntry(&bodyTable[index], Resources::HQR_BODY_FILE, bodyIndex & 0xFFFF);
if (bodyTableSize[index] == 0) {
error("HQR ERROR: Loading body entities");
Commit: 178bfb577dabe641843b79df501208787cb65d85
https://github.com/scummvm/scummvm/commit/178bfb577dabe641843b79df501208787cb65d85
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-11-17T20:59:28+01:00
Commit Message:
TWINE: removed unused return value
Changed paths:
engines/twine/grid.cpp
engines/twine/grid.h
diff --git a/engines/twine/grid.cpp b/engines/twine/grid.cpp
index 040d1047ec..512e9d37bb 100644
--- a/engines/twine/grid.cpp
+++ b/engines/twine/grid.cpp
@@ -268,7 +268,7 @@ void Grid::getSpriteSize(int32 offset, int32 *width, int32 *height, const uint8
*height = *(spritePtr + 1);
}
-int32 Grid::loadGridBricks(int32 gridSize) {
+void Grid::loadGridBricks(int32 gridSize) {
uint32 firstBrick = 60000;
uint32 lastBrick = 0;
uint32 currentBllEntryIdx = 0;
@@ -303,11 +303,13 @@ int32 Grid::loadGridBricks(int32 gridSize) {
if (brickIdx) {
brickIdx--;
- if (brickIdx <= firstBrick)
+ if (brickIdx <= firstBrick) {
firstBrick = brickIdx;
+ }
- if (brickIdx > lastBrick)
+ if (brickIdx > lastBrick) {
lastBrick = brickIdx;
+ }
brickUsageTable[brickIdx] = 1;
}
@@ -326,8 +328,6 @@ int32 Grid::loadGridBricks(int32 gridSize) {
warning("Failed to load isometric brick index %i", i);
}
}
-
- return 1;
}
void Grid::createGridColumn(const uint8 *gridEntry, uint32 gridEntrySize, uint8 *dest, uint32 destSize) {
diff --git a/engines/twine/grid.h b/engines/twine/grid.h
index a133cd519c..65c2467839 100644
--- a/engines/twine/grid.h
+++ b/engines/twine/grid.h
@@ -116,7 +116,7 @@ private:
* @param gridSize size of the current grid
* @return true if everything went ok
*/
- int32 loadGridBricks(int32 gridSize);
+ void loadGridBricks(int32 gridSize);
/** Create grid masks to allow display actors over the bricks */
void createGridMask();
/**
Commit: d88dd727054fdbcdd48803a2e7f6292a80d2e0a2
https://github.com/scummvm/scummvm/commit/d88dd727054fdbcdd48803a2e7f6292a80d2e0a2
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-11-17T20:59:28+01:00
Commit Message:
TWINE: make looping sound
Changed paths:
engines/twine/sound.cpp
diff --git a/engines/twine/sound.cpp b/engines/twine/sound.cpp
index b026b2a7bd..2b501ee3dd 100644
--- a/engines/twine/sound.cpp
+++ b/engines/twine/sound.cpp
@@ -137,7 +137,7 @@ bool Sound::playSample(int channelIdx, int index, uint8 *sampPtr, int32 sampSize
delete stream;
return false;
}
- _engine->_system->getMixer()->playStream(soundType, &samplesPlaying[channelIdx], audioStream, index);
+ _engine->_system->getMixer()->playStream(soundType, &samplesPlaying[channelIdx], Audio::makeLoopingAudioStream(audioStream, loop), index);
return true;
}
Commit: f7552d1cd13f72ba864a464568fd362ca0216b84
https://github.com/scummvm/scummvm/commit/f7552d1cd13f72ba864a464568fd362ca0216b84
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-11-17T20:59:28+01:00
Commit Message:
TWINE: fixed more memory leaks
Changed paths:
engines/twine/gamestate.cpp
engines/twine/grid.cpp
engines/twine/scene.cpp
engines/twine/twine.cpp
diff --git a/engines/twine/gamestate.cpp b/engines/twine/gamestate.cpp
index 936200969b..a4ce949f1c 100644
--- a/engines/twine/gamestate.cpp
+++ b/engines/twine/gamestate.cpp
@@ -453,6 +453,7 @@ void GameState::processGameoverAnimation() {
while (!_engine->_input->toggleAbortAction() && (_engine->lbaTime - startLbaTime) <= 500) {
_engine->readKeys();
if (_engine->shouldQuit()) {
+ free(gameOverPtr);
return;
}
diff --git a/engines/twine/grid.cpp b/engines/twine/grid.cpp
index 512e9d37bb..e3fea56e5f 100644
--- a/engines/twine/grid.cpp
+++ b/engines/twine/grid.cpp
@@ -273,7 +273,6 @@ void Grid::loadGridBricks(int32 gridSize) {
uint32 lastBrick = 0;
uint32 currentBllEntryIdx = 0;
- memset(brickTable, 0, sizeof(brickTable));
memset(brickSizeTable, 0, sizeof(brickSizeTable));
memset(brickUsageTable, 0, sizeof(brickUsageTable));
@@ -321,6 +320,8 @@ void Grid::loadGridBricks(int32 gridSize) {
for (uint32 i = firstBrick; i <= lastBrick; i++) {
if (!brickUsageTable[i]) {
+ free(brickTable[i]);
+ brickTable[i] = nullptr;
continue;
}
brickSizeTable[i] = HQR::getAllocEntry(&brickTable[i], Resources::HQR_LBA_BRK_FILE, i);
diff --git a/engines/twine/scene.cpp b/engines/twine/scene.cpp
index 61fa22f426..41cdb7af15 100644
--- a/engines/twine/scene.cpp
+++ b/engines/twine/scene.cpp
@@ -555,6 +555,7 @@ void Scene::processActorZones(int32 actorIdx) {
}
void Scene::stopRunningGame() {
+ free(currentScene);
currentScene = nullptr;
}
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index e971a65b73..c725190861 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -795,6 +795,7 @@ int32 TwinEEngine::runGameEngine() { // mainLoopInteration
_scene->newHeroY = -1;
_scene->newHeroZ = -1;
_scene->currentSceneIdx = _scene->previousSceneIdx;
+ _scene->stopRunningGame();
}
autoSave();
More information about the Scummvm-git-logs
mailing list